Я думаю, что страница делает первоначальное обновление через POST для года, а затем для брака. Следующее может быть упрощено, я уверен, но, кажется, работает
import requests
from bs4 import BeautifulSoup as bs
default_data = {'__EVENTTARGET': '',
'__EVENTARGUMENT': '',
'__LASTFOCUS': '',
'__VIEWSTATE': '',
'__VIEWSTATEGENERATOR': 'B3C16737',
'__EVENTVALIDATION': '',
'ctl00$rilinContent$cbYear': '',
'ctl00$rilinContent$txtReport': '',
'ctl00$rilinContent$cbCommittee': '',
'ctl00$rilinContent$comm': 'cbxIn',
'ctl00$rilinContent$cbCategory': '',
'ctl00$rilinContent$cbSponsor': '',
'ctl00$rilinContent$cbxPrime': '',
'ctl00$rilinContent$txtBills': '',
'ctl00$rilinContent$cbxSortNumeric': '',
'ctl00$rilinContent$txtBillFrom': '',
'ctl00$rilinContent$txtBillTo': '',
'ctl00$rilinContent$cbAction': '',
'ctl00$rilinContent$cbxLastAction': '',
'ctl00$rilinContent$cmdReport': '', #'Enter'
'ctl00$rilinContent$hfQuery': ''}
url = "http://status.rilin.state.ri.us/"
data = default_data
headers = {
'User-Agent': 'Mozilla/5.0',
'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Content-Type' : 'application/x-www-form-urlencoded'
}
data['ctl00$rilinContent$cbYear'] = 2017
with requests.Session() as s:
r = s.get(url)
soup = bs(r.content, 'lxml')
vs = soup.select_one('#__VIEWSTATE')['value']
ev = soup.select_one('#__EVENTVALIDATION')['value']
data['__VIEWSTATE'] = vs
data['__EVENTVALIDATION'] = ev
r = s.post(url, data=data, headers=headers)
soup = bs(r.content, 'lxml')
vs = soup.select_one('#__VIEWSTATE')['value']
ev = soup.select_one('#__EVENTVALIDATION')['value']
data['ctl00$rilinContent$cbCategory'] = 307
data['__VIEWSTATE'] = vs
data['__EVENTVALIDATION'] = ev
data['ctl00$rilinContent$cmdReport'] = 'Enter'
r = s.post(url, data=data, headers=headers)
soup = bs(r.content, 'lxml')
print(soup)