Я пытаюсь создать скребок Python (https://vpso.net/prisoners.aspx), где нужно сначала нажать кнопку «Поиск», чтобы просмотреть результаты ...
Я знаю, как сделайте что-то подобное с Selenium, но я пытаюсь узнать больше о том, как люди используют запросы с методом публикации для извлечения данных.
Насколько я могу видеть, при нажатии на функцию JavaScript f_isearch()
выполняется, хотя я не вижу, где эта функция определена в исходных скриптах.
Я также предполагаю, что __EVENTTARGET
, __EVENTARGUMENT
и __VIEWSTATE
как-то здесь вступают в игру? И __VIEWSTATEGENERATOR
?
Это моя неудачная попытка построить код:
res = requests.get(url)
soup = BeautifulSoup(res.content, 'lxml')
ACTION = soup.find('input', attrs={'id': 'bsearch'})["onclick"]
VIEWSTATE = soup.find('input', attrs={'id': '__VIEWSTATE'})["value"]
VIEWSTATEGENERATOR = soup.find('input', attrs={'id': '__VIEWSTATEGENERATOR'})["value"]
SEARCHBUTTON = soup.find('input', attrs={'id': 'bsearch'})["value"]
req_data = {'__VIEWSTATE': VIEWSTATE,
'__VIEWSTATEGENERATOR': VIEWSTATEGENERATOR,
'SearchButton': SEARCHBUTTON}
res = requests.post(url + ACTION, data = req_data)
soup = BeautifulSoup(res.content, 'lxml')
print(soup)