我正在尝试更新在Anaconda中使用Python 3中的Beautiful Soup 4的web scraper应用程序来使用Requests包而不是urllib,urllib2和urllib3 .
urllib和urllib2在Anaconda Channels 中不存在,并且从我读过的请求包已经使urllib和urllib2过时了 . 我仍然是用于Web抓取的Python编程的新手,并且尚未完全理解这4个包的所有概念和内部细微之处 .
当我用“requests.get()”替换“urllib2.urlopen()”时,我收到以下错误:
从bs4导入BeautifulSoup导入请求
'''replace the following line with "page = Request.get(url)" '''
# page = urllib2.urlopen(url)
page = requests.get(url)
soup_page = BeautifulSoup(page,"lxml")
我在bs4模块中收到以下错误消息,但没有解释:文件"C:\ProgramData\Anaconda3\lib\site-packages\bs4__init__.py",第246行, init elif len(标记)<= 256和(
TypeError:'Response'类型的对象没有len()
此错误消息让我深入bs4中 init .py的内容 .
我找不到如何使用Beautiful Soup 4将urllib或urllib2代码移植到请求的解释 .
任何人都可以提供关于如何移植urllib / urllib2应用程序以在Python 3中使用美丽汤的请求的明确指南?
Anaconda / conda不会将urllib或urllib2导入Python 3环境 .
谢谢 .
丰富
1 回答
发生错误是因为您试图以错误的方式将响应的html代码传递给Beautifulsoup . 传递
response.text
,而不是响应对象:你可能需要阅读requests documentation