抓取问题网站的网页数据

0 投票
4 回答
2121 浏览
提问于 2025-04-15 14:57

我正在尝试从一个网站上抓取一些信息,但在读取相关页面时遇到了困难。这些页面似乎先发送一个基本的设置,然后再发送更详细的信息。我的下载尝试似乎只捕获到了基本的设置。我到目前为止尝试了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>

撰写回答