Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从简单网站抓取数据-更改';邮政';至';获取';_Python_Http Post_Web Scraping_Http Get - Fatal编程技术网

Python 从简单网站抓取数据-更改';邮政';至';获取';

Python 从简单网站抓取数据-更改';邮政';至';获取';,python,http-post,web-scraping,http-get,Python,Http Post,Web Scraping,Http Get,我访问了这个网站: 然后,选择最后一个选项: Select a letter for ICAO Codes: and chose "B" 然后单击提交。 我使用来自Firefox的篡改数据和实时HTTP头监控进度 而且,一切都很好。。达到相同效果所需的直接URL如下: 但是,当使用上述URL时不返回数据。 我遗漏了什么以及如何找到正确的URL 这个练习的目标是一旦我知道了URL。。我将使用python脚本循环a到Z,并从所有页面获取内容 请帮助。POST和GET不等同。如果网站只接受GET

我访问了这个网站:

然后,选择最后一个选项:

Select a letter for ICAO Codes: and chose "B"
然后单击提交。

我使用来自Firefox的篡改数据和实时HTTP头监控进度

而且,一切都很好。。达到相同效果所需的直接URL如下:

但是,当使用上述URL时不返回数据。

我遗漏了什么以及如何找到正确的URL

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


请帮助。

POST和GET不等同。如果网站只接受GET,那么就只能这样了


但是,您可以同样轻松地编写使用POST的脚本。

我假设您拥有网站的权限,可以使用他们的数据库,并且可以刮取他们的网站。在任何其他情况下,根据管辖权的不同,这样做可能是非法的

这里的问题是,您正在使用GET检索内容,但网站正在等待帖子。GET和POST不是等价的,尽管有些程序员认为它们是相同的(例如在PHP中,您可以使用<代码> $i请求<代码>,而不是<代码> $yget < /COD>和<代码> $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()

这是因为您需要在该页面上使用POST方法

试试这个:

pip install requests
然后:


然而,看起来除了上面的查询字符串参数之外,您还需要找出post数据,以使其真正返回数据

谢谢。。真管用!!为什么他们会用我在问题中强调的方法在某个网站上获得工作,而该网站期望得到一篇文章。所以,你是说我不能依靠这个。。。对吗?一些Web应用程序被编写为可交换地接受查询字符串或请求后正文中的值;有些则不然。如果一个应用程序只在一个地方或另一个地方查找VAULE,你必须在它期望的地方传递它们。
>>> import requests
>>> r = requests.post('http://www.avcodes.co.uk/airllistres.asp?statuslst=Y&iataairllst=&icaoairllst=B&B1=Submit')
>>> r.text