Мне регулярно требуется информация для экономической статистики от Евростата, чтобы обучить и протестировать модель вывода.
Я попытался автоматизировать процесс, используя Requests и BeautifulSoup ;
headers = { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36', 'Accept': '*/*' } page = requests.get('https://appsso.eurostat.ec.europa.eu/nui/show.do?dataset=sts_inpr_m&lang=en', headers=headers) return BeautifulSoup(page.text, 'html.parser')
Хотя в ответ я получаю:
<html> <head></head> <body> <script type='text/javascript' language='JavaScript' src='https://appsso.eurostat.ec.europa.eu/nui/js/jquery-1.3.2.js'></script> <script type='text/javascript' language='JavaScript' src='https://appsso.eurostat.ec.europa.eu/nui/js/noMultipleWindows.js?d=1594493775728'></script> <form id='firepost' method='POST' action='https://appsso.eurostat.ec.europa.eu/nui/show.do?dataset=sts_inpr_m&lang=en&fbclid=IwAR0wiAQfEomg6H-OfRlAgbLI5laWbqXr0W5QjeT89I_MOvaQiQUIDEx5XBg'> <input type='hidden' name='dataset' value="sts_inpr_m"/> <input type='hidden' name='fbclid' value="IwAR0wiAQfEomg6H-OfRlAgbLI5laWbqXr0W5QjeT89I_MOvaQiQUIDEx5XBg"/> <input type='hidden' name='lang' value="en"/> </form> <form id='errorForm' method='POST' action='https://appsso.eurostat.ec.europa.eu/nui/onewindowpersession.do'> </form> <script type='text/javascript'> blockOrAllowProceed(); </script> </body> </html>
Как я могу (если вообще возможно) сделать BeautifulSoup получить контент из указанное место?
Указанный URL не является запросом на получение. Это почтовый запрос с телом json, как в приведенном ниже коде
data = {"dataset":"sts_inpr_m","lang":"en"} res = requests.post("https://appsso.eurostat.ec.europa.eu/nui/show.do?dataset=sts_inpr_m&lang=en", json=data) print(res.text) return BeautifulSoup(res.text, 'html.parser')
Вывод: