我已经重新检查了我的代码并查看了打开URL以将Web数据传递到Beautiful Soup的类似操作,由于某些原因我的代码只是没有返回任何内容,尽管它的格式正确:
>>> from bs4 import BeautifulSoup
>>> from urllib3 import poolmanager
>>> connectBuilder = poolmanager.PoolManager()
>>> content = connectBuilder.urlopen('GET', 'http://www.crummy.com/software/BeautifulSoup/')
>>> content
<urllib3.response.HTTPResponse object at 0x00000000032EC390>
>>> soup = BeautifulSoup(content)
>>> soup.title
>>> soup.title.name
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'name'
>>> soup.p
>>> soup.get_text()
''
>>> content.data
a stream of data follows...
Run Code Online (Sandbox Code Playgroud)
如图所示,很明显urlopen()返回一个由变量内容捕获的HTTP响应,它可以读取响应的状态,但是在它被传递到Beautiful Soup后,Web数据不会被转换成为一个美丽的汤对象(可变汤).你可以看到我试图读取一些标签和文本,get_text()返回一个空列表,这很奇怪.
奇怪的是,当我通过content.data访问网络数据时,数据显示但由于我不能使用Beautiful Soup来解析它,所以它没有用.我的问题是什么?谢谢.