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.