Python 刮取需要提交表单的php网页

Python 刮取需要提交表单的php网页,python,web-scraping,request,Python,Web Scraping,Request,以下是链接- 我正在尝试编写一个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:

以下是链接-

我正在尝试编写一个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页面完全相同。这表明所有这些参数(年份范围、国家代码等)均未提交到页面


你知道我该怎么做吗?非常感谢

尝试使用GET请求而不是POST请求,因为您没有输入任何值,而是从客户端请求一些数据

你的脚本运行得很好。page.content保存所有响应数据。谢谢

导入请求
提交值={'country_code':'ALG','low_year':'2010','high_year':'2018','import_or_export':'import','Summary':'country','filetype':'html','Action':'Download'}
page=requests.post(url=)http://armstrade.sipri.org/armstrade/page/values.php,数据=提交值)

打印(page.content)
您已经快到了。检查请求和响应(例如,在Chrome工具的网络选项卡中)

工作得很好

UPD: (由于我的答案有误,决定突出显示)

  • 它是html/export\u values.php,请求应该在那里
  • response.text
    包含数据(可以是
    response.content
    ,也可以是字节)

  • URL不应该是
    http://armstrade.sipri.org/armstrade/html/export_values.php
    ?当我打开SIPRI官方网站的页面时,链接是,如果我真的提交一份表格并在屏幕上显示数据,它会变成你所说的那个。我想你是对的,这是阻止我得到正确结果的关键部分。谢谢感谢您的回复,我运行了您的代码,但“sample.hmtl”文件实际上表明:

    未找到页面

    您验证了您的文件吗?@Xyt,我验证了。有一个输入错误,修正了我的答案——它是
    html/export\u values.php
    这是正确的解决方案。我自己运行,可以得到输出html。谢谢!我重新运行并获得输出。我尝试了POST和REQUEST,实际上,得到了相同的结果。谢谢我不这么认为,我的内容只给了我原始页面,你可以在那里提交你的表格。你核实你的结果了吗?
    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)