所有标签都没有在python中显示

时间:2014-01-06 07:40:05

标签: python

使用以下代码在html页面上解析

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'})
urlfile = urllib2.urlopen(request)
page = urlfile.read()
soup = BeautifulSoup(page)

手动生成urllink。这里的问题是没有从中获取整个网页,

page = urlfile.read()

如果我使用“保存页面作为选项”保存页面,我可以看到许多html内容。后来我才知道网页内部发送了很多请求。我如何获得整个页面或者我可以获得这些请求的URL?

请帮帮我

1 个答案:

答案 0 :(得分:1)

当您请求网址时,它会返回该网页的源代码。也许该页面包含img,css,js文件(我们称之为静态文件)。而你的浏览器将呈现html,它将根据这些静态文件的url来请求资源。例如<img src="/static/a.png" />,则浏览器会请求/static/a.png获取img。和css和js文件一样。

更重要的是,现在大多数网站都是web2.0,这意味着我们可以使用ajax异步请求资源。例如$.ajax({url:'/xxx' ...})(jquery的)。并且js也可以修改dom树,例如添加新标签。

所以,如果你想像浏览器那样获得所有内容。你需要解析html或重写ajax请求,使用javascript来执行此操作。或者如果你有一个浏览器内核,比如webkit,你也可以做与浏览器相同的事情。例如ghost.pyselenium capserjsphantomjs