2009-10-09 182 views
0

我试图从网站上刮取一些信息,但在阅读相关页面时遇到困难。页面似乎首先发送一个基本的设置,然后是更详细的信息。我的下载尝试似乎只捕获基本设置。到目前为止,我已经尝试过urllib和机械化。网站抓取问题网站

尽管在查看页面源代码时看不到我想要的部分,但Firefox和Chrome在显示页面时没有任何问题。

示例URL是https://personal.vanguard.com/us/funds/snapshot?FundId=0542&FundIntExt=INT

我想,例如,平均期限和平均持续时间从页面的右下角。问题不在于从页面中提取该信息,而是在下载页面以便我可以提取信息。

回答

1

网站通过AJAX加载数据。 Firebug显示ajax调用。对于给定的页面,将数据从https://personal.vanguard.com/us/JSP/Funds/VGITab/VGIFundOverviewTabContent.jsf?FundIntExt=INT&FundId=0542

加载参看日文原版页面上相应的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> 
+0

这就行了。虽然其他一些答案是很好的一般答案,但这使我能够做到我想要的很好而简单。 – foosion

2

该页面使用JavaScript加载数据。 Firefox和Chrome浏览器只能运行,因为您已启用JavaScript - 尝试禁用它,您将得到一个大部分为空的页面。

Python本身无法做到这一点 - 您最好的折衷办法是使用诸如Pamie之类的东西来控制真正的浏览器(如果您使用Windows,最简单的方式是使用Internet Explorer)。

+0

看一看http://pamie.sourceforge.net/ – RichieHindle

+0

我带你去看看Pamie – foosion

0

原因是因为它在加载后执行AJAX调用。您需要考虑搜索这些网址来抓取它的内容。

+0

我没有看到任何有用的信息来源。任何建议的URLs? – foosion