Нажатие кнопки поиска (запуск ASP. NET формы POST) с запросами Python - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь создать скребок 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)
...