我是一个新手试图编写一个python脚本来从网站上抓取一些信息。我需要访问网站的搜索页面,但在新会话中,它会将您重定向到TOS接受页面。单击是或否接受,然后它将移动到搜索页面。这是我的代码:
import requests
s=requests.Session()
page = s.get("http://probate.cuyahogacounty.us/pa/CaseSearch.aspx")
if ('TOS.aspx' in page.url):
print("Attempt to agree to TOS")
yesBtn={'ctl00$mpContentPH$btnYes': 'Yes'}
r=s.post(page.url, data=yesBtn)
r2=s.get("http://probate.cuyahogacounty.us/pa/CaseSearch.aspx")
print (r.url)
print (r2.url)
r和r2都让我回到了TOS网址。帮助!
答案 0 :(得分:0)
这种网站需要一个cookiejar或一些“对象”来存储会话。
试试这个。
import requests
import lxml.html
base_url = 'http://probate.cuyahogacounty.us'
with requests.Session() as s:
url = base_url + '/pa/CaseSearch.aspx'
resp = s.get(url,allow_redirects=False)
url_tos = base_url + resp.headers['Location']
resp = s.get(url_tos)
root = lxml.html.fromstring(resp.text)
vgenerator = root.xpath('//*[@id="__VIEWSTATEGENERATOR"]//@value')[0]
viewstate = root.xpath('//*[@id="__VIEWSTATE"]//@value')[0]
eventvalidation = root.xpath('//*[@id="__EVENTVALIDATION"]//@value')[0]
data = {
'ajax_HiddenField': '',
'__EVENTTARGET': '',
'__EVENTARGUMENT': '',
'__VIEWSTATE': viewstate,
'__VIEWSTATEGENERATOR': vgenerator,
'__EVENTVALIDATION': eventvalidation,
'ctl00$mpContentPH$btnYes': 'Yes'
}
r = s.post(url_tos,data=data)
print r.text