从简单网站抓取数据 - 将"发布"更改为"获取"

ihi*_*wer 0 python http-get http-post web-scraping

我访问了这个网站:http: //www.avcodes.co.uk/airlcodesearch.asp

并且,选择了最后一个选项:

Select a letter for ICAO Codes: and chose "B"
Run Code Online (Sandbox Code Playgroud)

然后点击 Submit.

我使用Firefox中的Tamper Data和Live HTTP Headers监控进度.

并且,一切都很好..并且实现相同效果所需的直接URL是:

http://www.avcodes.co.uk/airllistres.asp?statuslst=Y&iataairllst=&icaoairllst=B&B1=Submit

但是,使用上述URL时,不会返回数据.

我缺少什么,如何找到正确的URL.

这个练习的目的是一旦我知道URL ..我将使用python脚本循环到A到Z并获取所有页面的内容.

请帮忙.

ral*_*hje 6

我假设您已获得该网站的许可,可以使用他们的数据库并允许您抓取他们的网站.在任何其他情况下,根据司法管辖区,这样做可能是违法的.

这里的问题是你使用GET来检索内容,但网站期待POST.Get和POST不是等价的,虽然有些程序员认为它们是相同的(例如,在PHP中,你可以使用$_REQUEST而不是$_GET$_POST).这个网站不像他们,所以你必须发布到这​​个网站.

在Python中,您可以将数据发布到这样的URL:

import urllib2
u = urllib2.urlopen("http://www.avcodes.co.uk/airllistres.asp", "statuslst=Y&iataairllst=&icaoairllst=B&B1=Submit")
print u.read()
Run Code Online (Sandbox Code Playgroud)