0

Ich habe einige JavaScript hinter einem Login, den ich kratzen muss. Dieses JavaScript wird beim Klicken eines Optionsfelds ausgelöst, wodurch die Elemente angezeigt werden, die ich bearbeiten muss.Pflegen Sie eingeloggten Zustand und scrape JavaScript

Selen und PhantomJS behalten nicht den eingeloggten Zustand bei, der durch die Anforderungsbibliothek verursacht wird.

session = requests.Session() 
h = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4", "Accept":"text/html,application/xhtml+xml,application/xml,application/x-www-form-urlencoded; q=0.9,image/webp,*/*;q=0.8"} 

i = session.get(url, headers=h) 
b = BeautifulSoup(i.text, "html.parser") 
# Frm login 
frm = b.find("input", {"name":"frmLogin"}) 
frmval = frm.attrs['value'] 
# Login token 
tok = b.find("input", {"name":"submitToken"}) 
tokval = tok.attrs['value'] 
# target 
targ = b.find("input", {"name":"target"}) 
targval = targ.attrs['value'] 
# hdn_mobile 
hdnm = b.find("input", {"name":"hdn_mobile"}) 
hdnmval = hdnm.attrs['value'] 

params = {'frmLogin:strCustomerLogin_userID': username, 'frmLogin:strCustomerLogin_pwd': password, 'frmLogin': frmval, 'submitToken': tokval, 'target': targval, 'hdn_mobile': hdnmval, 'frmLogin:btnLogin1.x': '0', 'frmLogin:btnLogin1.y': '0'} 
r = session.post(urlact, data=params, headers=h) 
from selenium import webdriver 
driver = webdriver.PhantomJS(executable_path='../p/bin/phantomjs') 
g = session.get(url2, headers=h) 
d = BeautifulSoup(g.text, "html.parser") 

Ich bin mir der seleniumrequests Bibliothek aber es scheint keine konkrete Dokumentation rund um seine Verwendung zu sein.

Wie kann ich diesen eingeloggten Zustand beibehalten, den JS ausführen und dann das Ergebnis abkratzen?

Vielen Dank im Voraus.

Antwort

0

Session-Parameter in der Regel in Cookies gespeichert, so dass Sie von Cookies Antwort-Übertragung haben i = session.get(url, headers=h)-h, bevor Sie r = session.post(urlact, data=params, headers=h)

rufen Sie müssen immer Cookies Antwort bekommen und legte sie auf nächste Anfrage