一、原因

def get_page_from_url(self, url):
response = requests.get(url, headers=self.headers)
# 这个位置可能会有问题(去掉了decode())
# return response.content
return response.content.decode()
.......
def get_datas_from_page(self, page):
'''提取页面中数据'''
# 把page转换为Element对象
# ValueError: Unicode strings with encoding declaration are not supported.
# 解决方案; 就是要传入二进制数据
html = etree.HTML(page)
二、解决方案:
def get_page_from_url(self, url):
response = requests.get(url, headers=self.headers)
# 这个位置可能会有问题(去掉了decode())
return response.content
# return response.content.decode()
def get_datas_from_page(self, page):
'''提取页面中数据'''
# 把page转换为Element对象
# ValueError: Unicode strings with encoding declaration are not supported.
# 解决方案; 就是要传入二进制数据
html = etree.HTML(page)
........
本文介绍了一个关于使用Python请求网页内容并解析时遇到的Unicode字符串错误问题。具体来说,当从URL获取页面内容并尝试将其转换为Element对象时,出现了不支持带有编码声明的Unicode字符串的错误。文章详细介绍了如何通过调整获取网页内容的方式从返回二进制数据而不是文本数据来解决此问题。

1369

被折叠的 条评论
为什么被折叠?



