2012-12-23 44 views
0

我想写一个Python脚本,从它的内容依赖于一个查询字符串的网页检索源代码。具体页面是:http://www.billboard.com/charts/hot-100#/charts/hot-100?begin=1&order=position。这是Billboard Hot 100页面,该页面以10个页面的组合形式显示Hot 100。您可以控制通过“开始”查询字符串项检索的图表位置,并返回10首包括“开始”号码的歌曲。基本上,我想使用Windows计划程序自动运行一个脚本,每周检索10个页面。我并不喜欢用Python来做这件事。无法从网页检索代码,因为查询字符串?

我用下面的脚本,它检索什么似乎是在第一页(职位1 - 10)。

import urllib 
urllib.urlretrieve("http://www.billboard.com/charts/hot-100#/charts/hot-100?begin=1&order=position",r'C:\g\filename.txt') 

然而,当我改变“开始”值11,它仍然检索1 - 10也许网页不知何故不得允许一个脚本这样的行动?如果我不输入查询字符串的URL,它会返回第10个位置为好,所以我想一个可能性是,查询字符串没有被考虑在所有的,因为这可能指向需要一种不同的方法。

您可以提供任何帮助将不胜感激!

谢谢! (和节日快乐!)

+0

你肯定你被允许从该远程站点窃取信息和数据? –

回答

0

您是否尝试过在你的浏览器去http://www.billboard.com/charts/hot-100#/charts/hot-100?begin=11&order=position?你也会得到结果1-10。似乎begin的格式必须是10n + 1

2

你的代码是可以正常使用。

当您在浏览器中提供时,您将获得与由URL http://www.billboard.com/charts/hot-100#/charts/hot-100?begin=11&order=position生成的HTML数据相同的HTML数据。

这意味着,以检索项从11到20的代码是一个异步请求,如AJAX。

试试这个代码,它似乎工作:

import urllib 
urllib.urlretrieve("http://www.billboard.com/charts/hot-100?begin=11&order=position",r'C:\g\filename.txt') 
+0

在这种情况下,使用萤火虫检查网页在后台或其他方面正在做什么 –

+0

已更新答案... – ATOzTOA