urllib2.urlopen()中缺少内容

2024-09-29 22:01:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过发送请求来解析网页

request = urllib2.Request(urllink, None, {'User-Agent':'Mosilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11'})
print request
urlfile = urllib2.urlopen(request)
page = urlfile.read()
soup = BeautifulSoup(page)

这里的问题是来自urllib2.urlopen()的响应缺少网页中的某些内容。如果我保存了页面,我会得到所有内容。 我注意到还有一个请求通过ajax调用进入web页面。python中有没有通过发送请求来获取整个页面的方法


Tags: none网页内容requestpage页面urllib2agent
1条回答
网友
1楼 · 发布于 2024-09-29 22:01:33

AJAX是异步的JS和XML—这意味着您可以获得文档,在浏览器中加载后,一些内容会被动态地加载并注入到DOM中。在

这对你意味着什么?你有获得完整文件所需的所有信息,但是。。。好吧,你可能没有办法执行JS下载和注入动态数据。在

怎么解释这个?我还没有找到任何针对python的JS引擎,但我仍在搜索。相反,您可以使用一些使用Selenium的浏览器引擎(它是一个与安装在您的计算机上的浏览器通信的库,允许您模拟用户操作,如单击、输入等)。然后,您可以在这些操作之后检查DOM并执行另一个操作。在

另一种方法是使用Jython(正如您使用p2.7一样,它应该是兼容的)并利用Rhino或任何其他JS引擎forjava来执行这段代码。在

相关问题 更多 >

    热门问题