Я хотел бы нажать кнопку «Suche Starten» и почистить результаты для исследовательского проекта с этой страницы (в основном его можно нажимать без заполнения каких-либо форм - затем открывается всплывающее окно, содержащее нужные данные).
https://www.insolvenzbekanntmachungen.de/cgi-bin/bl_suche.pl
По сути, это публичное объявление Германии о банкротстве компаний.
Я уже потратил немало времени, пытаясь заставить его работать, но почему-то я не могу заставить его работать.
Я знаю, что мог бы также попробовать браузер без селена, но, во-первых, я бы предпочел решение для более чистых запросов, а во-вторых, мне бы хотелось иметь возможность непрерывно запускать скрипт с сервера без особых усилий и без экрана.
Итак, я до сих пор проверял запрос на публикацию, который мой браузер отправляет с помощью Firefox Dev Tools, и пытался эмулировать запрос на публикацию. Проблема в том, что я могу получить стандартные данные только из исходного окна, но не из открывающегося окна, в котором хранятся все нужные мне данные.
Итак, я импортировал библиотеку запросов и создал пользовательский запрос с заголовком и полезной нагрузкой.
headers={
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0',
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-GB,en;q=0.5",
"Cache-Control": "no-cache",
"Connection": "keep-alive",
"Content-Length": "413",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "www.insolvenzbekanntmachungen.de",
"Pragma": "no-cache",
"Referer": "https://www.insolvenzbekanntmachungen.de/cgi-bin/bl_suche.pl",
"Upgrade-Insecure-Requests": "1"
}
payload={
'Suchfunktion': 'uneingeschr',
'Absenden': 'Suche+starten',
'Bundesland': '-Hamburg',
'Gericht': 'Hamburg',
'Datum1':'',
'Datum2':'',
'Name':'',
'Sitz':'',
'Abteilungsnr':'',
'Registerzeichen': '--',
'Lfdnr':'',
'Jahreszahl': '--',
'Registerart': '--+keine+Angabe+--',
'select_registergericht':'',
'Registergericht': '--+keine+Angabe+--',
'Registernummer':'',
'Gegenstand': '--+Alle+Bekanntmachungen+innerhalb+des+Verfahrens+--',
'matchesperpage': '10',
'page': '1',
'sortedby': 'Datum',
'submit': 'return validate_globe(this)',
}
И тогда я делаю следующий запрос:
r = requests.post('https://www.insolvenzbekanntmachungen.de/cgi-bin/bl_suche.pl',headers=headers,data=payload)
К сожалению, print (r.text) не даст мне данные из всплывающего окна, которые будут отображаться в браузере.
Любая помощь будет принята с благодарностью!
Jasper