gpt4 book ai didi

python - BeautifulSoup HTTPResponse 没有属性编码

转载 作者:行者123 更新时间:2023-11-28 19:09:50 24 4
gpt4 key购买 nike

我正在尝试让 beautifulsoup 使用 URL,如下所示:

from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen("http://proxies.org")
soup = BeautifulSoup(html.encode("utf-8"), "html.parser")
print(soup.find_all('a'))

但是,我收到一个错误:

 File "c:\Python3\ProxyList.py", line 3, in <module>
html = urlopen("http://proxies.org").encode("utf-8")
AttributeError: 'HTTPResponse' object has no attribute 'encode'

知道为什么吗?可能与 urlopen 函数有关吗?为什么需要 utf-8?

Python 3 和 BeautifulSoup4 似乎明显存在一些差异,关于给出的示例(现在似乎已过时或错误)......

最佳答案

它不起作用,因为 urlopen 返回一个 HTTPResponse 对象,而您将其视为纯 HTML。您需要在响应上链接 .read() 方法以获取 HTML:

response = urlopen("http://proxies.org")
html = response.read()
soup = BeautifulSoup(html.decode("utf-8"), "html.parser")
print (soup.find_all('a'))

您可能还想使用 html.decode("utf-8") 而不是 html.encode("utf-8")

关于python - BeautifulSoup HTTPResponse 没有属性编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41925548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com