这是链接-http://armstrade.sipri.org/armstrade/page/values.php
我正在尝试编写Python代码以在下拉菜单中针对每种状态自动下载这些CSV文件。我的代码如下:
submit_value={'country_code':'ALG','low_year':'2010','high_year':'2018','import_or_export':'import','summarize':'country','filetype':'html','Action':'Download'}
page = requests.post(url='http://armstrade.sipri.org/armstrade/page/values.php',data=submit_value)
但是,这并没有给我任何新的东西。相反,我在page.text中拥有的内容与原始HTML页面完全相同。这表明所有这些参数(年份范围,国家/地区代码等)均未提交到页面。
有什么主意我该怎么做?非常感谢!
答案 0 :(得分:0)
尝试使用GET请求而不是POST请求,因为您没有输入任何值,而是从客户端请求一些数据。
答案 1 :(得分:0)
您已经快要在那里了。检查请求和响应(例如,在Chrome工具的“网络”标签中)
submit_value={'country_code':'ALG','low_year':'2010','high_year':'2018','import_or_export':'import','summarize':'country','filetype':'html','Action':'Download'}
response = requests.post(url='http://armstrade.sipri.org/armstrade/html/export_values.php',data=submit_value)
with open("/tmp/sample.hmtl", "w") as f:
f.write(response.text)
工作正常!
UPD: (由于我的回答中有错字而决定要突出显示)
response.text
包含数据(也可能是response.content
,那里只是字节)答案 2 :(得分:-1)
您的脚本运行良好。 page.content保存所有响应数据。谢谢。
import requests
submit_value={'country_code':'ALG','low_year':'2010','high_year':'2018','import_or_export':'import','summarize':'country','filetype':'html','Action':'Download'}
page = requests.post(url='http://armstrade.sipri.org/armstrade/page/values.php',data=submit_value)
print(page.content)