【发布时间】:2020-09-21 19:27:21
【问题描述】:
我正在这个网站上进行抓取,但是当我迭代时,我发现以下消息: 发生异常:UnicodeDecodeError “utf-8”编解码器无法解码位置 614 中的字节 0xf1:无效的继续字节
我的代码:
import requests
from bs4 import BeautifulSoup as soup
links=['https://www.yapo.cl/vi/74410346.htm?ca=15_s', 'https://www.yapo.cl/vi/73845701.htm?ca=15_s']
for link in links:
uClient = requests.get(link)
soup = soup(uClient.content, "html.parser")
containers = soup.findAll("div",{"class":"price price-final"})
print(containers)
【问题讨论】:
-
您正在抓取网页而不检查响应的状态。我运行它并获得 403 状态 - 禁止。考虑在将 html 加载到汤之前使用 uClient.raise_for_status()。如果状态码为 400 或 500,这将引发错误。
-
我已经这样做了,但这不是问题,(我输入了代码 200)。 :-( 无论如何感谢您的帮助
-
对不起,我看到了 403 错误,没有再继续。 “findAll”应该是“find_all”。我会推荐 print(soup.prettify()) - 找到无法解码的字符。也许你需要 uClient.text
-
现在我知道问题是“ñ”,无法解码
-
您能否通过打印 uClient.encoding 和 uClient.apparent_encoding 来检查您正在使用的编码?
标签: python-3.x beautifulsoup python-requests screen-scraping