并非所有标记都在python中显示

2024-09-29 21:50:20 发布

您现在位置: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)

我正在手动生成URL链接。这里的问题是我没有得到整个网页从

page = urlfile.read()

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

请帮帮我


Tags: 代码none网页readrequesthtmlpage页面
1条回答
网友
1楼 · 发布于 2024-09-29 21:50:20

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

此外,现在大多数网站都是web2.0,这意味着我们可以使用ajax异步请求资源。e、 g.$.ajax({url:'/xxx' ...})(jquery)。js还可以修改dom树,比如添加一个新的标记。你知道吗

所以如果你想像浏览器一样获取所有内容。您需要解析html或根据javascript重写ajax请求来实现这一点。或者如果你有一个浏览器内核,比如webkit,你也可以做和browser一样的事情。例如ghost.pyseleniumcapserjsphantomjs

相关问题 更多 >

    热门问题