使用以下代码在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?
请帮帮我
答案 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.py,selenium capserjs,phantomjs