抓取问题网站的网页数据
我正在尝试从一个网站上抓取一些信息,但在读取相关页面时遇到了困难。这些页面似乎先发送一个基本的设置,然后再发送更详细的信息。我的下载尝试似乎只捕获到了基本的设置。我到目前为止尝试了urllib和mechanize。
不过,Firefox和Chrome显示这些页面没有问题,尽管我在查看页面源代码时看不到我想要的部分。
一个示例网址是 https://personal.vanguard.com/us/funds/snapshot?FundId=0542&FundIntExt=INT
我想要的,比如页面右下角的平均到期时间和平均持续时间。问题不在于从页面中提取这些信息,而在于如何下载这个页面,以便我可以提取这些信息。
4 个回答
0
原因是它在加载后会进行AJAX请求。你需要考虑去寻找那些网址,以便提取它们的内容。
2
这个页面是用JavaScript来加载数据的。Firefox和Chrome之所以能正常工作,是因为你开启了JavaScript。如果你把它关掉,页面基本上会变得空空的。
光靠Python是无法做到这一点的。最好的办法是通过Python来控制一个真正的浏览器(如果你在Windows上,使用Internet Explorer会比较简单),可以用像Pamie这样的工具。
1
这个网站通过ajax技术来加载数据。你可以使用Firebug这个工具查看ajax请求。在这个特定的页面上,数据是从这个链接加载的。
你可以在原始页面上看到对应的javascript代码:
<script>populator = new Populator({parentId:
"profileForm:vanguardFundTabBox:tab0",execOnLoad:true,
populatorUrl:"/us/JSP/Funds/VGITab/VGIFundOverviewTabContent.jsf?FundIntExt=INT&FundId=0542",
inline:fals e,type:"once"});
</script>