无法从网页检索代码,因为查询字符串?

2024-10-02 22:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个Python脚本,从内容依赖于查询字符串的web页面检索源代码。具体的页面是:http://www.billboard.com/charts/hot-100#/charts/hot-100?begin=1&order=position。这是Billboard Hot 100页面,以10首歌曲为一组,在10页中显示Hot 100。您可以控制通过“begin”查询字符串项检索的图表位置,并返回包括“begin”编号在内的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')

但是,当我将“begin”值更改为11时,它仍然检索1-10。也许网页不允许这样的脚本操作?如果我输入不带查询字符串的URL,它也会返回前10个位置,所以我认为有一种可能是根本没有考虑查询字符串,这可能意味着需要一种不同的方法。你知道吗

如果您能提供任何帮助,我们将不胜感激!你知道吗

谢谢!(节日快乐!)你知道吗


Tags: 字符串脚本comhttp内容wwwpositionorder
3条回答

你试过在你的浏览器中http://www.billboard.com/charts/hot-100#/charts/hot-100?begin=11&order=position吗?您还将得到结果1-10。似乎begin必须是10n + 1的形式。你知道吗

仔细看这个URL,你会注意到它的一半实际上是片段的一部分(通常甚至没有发送到服务器)。他们可能正在使用AJAX来解析并显示相关数据。你知道吗

这似乎和预期的一样有效: http://www.billboard.com/charts/hot-100?begin=21&order=position

你的代码运行得很好。你知道吗

您得到的HTML数据与浏览器中给定的URLhttp://www.billboard.com/charts/hot-100#/charts/hot-100?begin=11&order=position生成的数据相同。你知道吗

这意味着,从11到20检索条目的代码是一个异步请求,就像AJAX一样。你知道吗

请尝试以下代码,它似乎有效:

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

相关问题 更多 >