代码如下:
for page in forumPages:
try:
req = Request(page, headers={'User-Agent': 'Mozilla/5.0'})
sock = urlopen(req).read().decode("utf-8-sig")
soup = BeautifulSoup(sock, 'html.parser')
pageThreads = soup.findAll('ol',{"class":"threads"})
print(len(pageThreads))
except Exception as ex:
pass
我犯了个错误
invalid start byte
如何解决异常,以便我可以有有效的文本来应用SOUP。你知道吗
做urlopen(req).read()
得到\xef\xbb\xbf<!DOCTYPE html PUBLIC ...
我正在尝试的页面是https://www.siasat.pk/forum/forumdisplay.php?22-Siasi-Discussion/page1
我已尝试应用this:
sock = urlopen(req).read().decode("utf-8-sig").encode("utf-8")
但例外是一样的
您显示的文件的开头看起来确实是unicode字节顺序标记的UTF-8版本,因此您的解码方法是正确的。显然,文件的其余部分包含无效的utf-8。由于您不控制要刮取的输入的质量,因此可以这样抑制错误,以便继续:
这将用一个特殊的符号替换问题区域,这样您就可以看到问题出现的地方。或者用
errors="ignore"
让它们消失。你知道吗相关问题 更多 >
编程相关推荐