Очистите веб-страницу php, которая нуждается в отправленной форме - PullRequest
1 голос
/ 28 марта 2019

Вот ссылка - 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-страница.Это говорит о том, что все эти параметры (годовой диапазон, код страны и т. Д.) Не отправляются на страницу.

Есть идеи, как мне это сделать?Очень ценится!

Ответы [ 3 ]

0 голосов
/ 28 марта 2019

Ваш скрипт работает очень хорошо.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)
0 голосов
/ 28 марта 2019

Вы уже почти там. Проверка запросов и ответов (например, на вкладке Сеть инструментов 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: (Решил выделить из-за опечатки в моем ответе)

  1. Это html / export_values ​​ .php, запрос должен идти туда
  2. response.text содержит данные (это также может быть response.content, только байты)
0 голосов
/ 28 марта 2019

Попробуйте использовать запрос GET вместо запроса POST, поскольку вы не вводите никаких значений, а запрашиваете некоторые данные у клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...