Ich habe das Internet gesucht, aber nicht in der Lage, von https://www.edline.net/InterstitialLogin.page wegen des Login-Prozesses zu kratzen, Wenn jemand spezifischen Code für die Website bereitstellen könnte, wäre es hilfreich. Ich versuche auch, in Python zu kratzen.scrape info von edline.net
Antwort
Es ist eine gute Übung, zuerst etwas research zu machen, am Code zu arbeiten und dann eine Frage zu stellen, wenn du nicht weiterkommst.
Da die Anmeldung csrf erfordert, Selenium, die mit Browser arbeiten, ist mehr geradlinig. Hier ist eine Lösung mit Python-Anfragen, ich habe kein Konto, also kann ich es nicht testen.
import re
import requests
def get_csrf(page):
matchme = r'name="csrfToken" value="(.*)" /'
csrf = re.search(matchme, str(page))
csrf = csrf.group(1)
return csrf
def login():
login_url = 'https://www.edline.net/InterstitialLogin.page'
with requests.Session() as s:
login_page = s.get(login_url)
csrf = get_csrf(login_page.text)
# username and password here
username = 'user'
password = 'pw'
login = {'screenName': username,
'kclq': password,
'csrfToken': csrf,
'TCNK':'authenticationEntryComponent',
'submitEvent':'1',
'enterClicked':'true',
'ajaxSupported':'yes'}
page = s.post(login_url, data=login)
# if this print a page inside, it's working
print page.text
login()
Ich habe es hilfreich gefunden, einige Plugins von Firefox zu verwenden, um herauszufinden, was genau für das Webscraping passieren muss.
Sie können FFs Inspector-Funktion (Extras -> Web Developer -> Inspector) verwenden, um die Maus über einzelne Elemente zu bewegen.
Sie können auch das Selenium IDE-Plugin für Firefox bekommen (Holen Sie sich das mit dem silbernen Se mit einem Bleistift - nicht die Menge mit den grünen Puzzleteile Icons.) Wenn Sie es während Sie die Website navigieren, Sie kann sehen, was die Elemente sind.
Auf der InterstitialLogin.page
, mit Selenium IDE, sehe ich die Login-Elemente sind:
ID = screenName <-- username
ID = klcq <-- password
name = submitButton <-- submit
Wenn Sie die Selenium-Pakete für Python verwenden, können Sie einen send_keys Befehl verwenden, wie:
userNameElement = driver.find_element_by_id('screenName')
userNameElement.send_keys('Cameron')
passWordElement = driver.find_element_by_id('klcq')
passWordElement.send_keys('Burrows')
submitButtonElement = driver.find_element_by_name('submitButton')
submitButtonElement.click()
also wie würde ich dies in Python zur Anmeldung implementieren? –
Der Code oben ist, wie Sie sich einloggen würden. Wenn Sie Ihre Frage bearbeiten können, um zu zeigen, welchen Code Sie bis jetzt haben, kann ich vielleicht spezifischer sein. – Suzanne
- 1. Einloggen und scrapping edline.net
- 2. Scrape mehr Seiten von einer Website ohne
- 3. Scrape Tabelle von ASX Seite
- 4. Scrape spezifische Web-Daten
- 5. Screen Scrape Form Ergebnisse
- 6. Bildschirm scrape und Ajax
- 7. Scrape Tisch mit BeautifulSoup
- 8. Scrape Webseite nach Formular
- 9. Screen-scrape paginierte Daten
- 10. Rvest: Scrape mehrere URLs
- 11. PHP Daten von der Website scrape
- 12. Web Scrape von Klartext in R
- 13. Scrape Hyperlinks von einer HTML-Seite
- 14. Scrape nur bestimmte Details von einer Webseite
- 15. scrape HTML generiert von Javascript mit Python
- 16. Python BeautifulSoup scrape Nth-Art von Elementen
- 17. Scrape das Datum von einer HTML-Seite
- 18. DOM HTML & JS scrape von JS-Teil
- 19. Excel VBA - Website Scrape
- 20. Node.JS Scrape-Codierung?
- 21. Web-Scrape ohne Browsersteuerung?
- 22. Python web scrape scheitern
- 23. Python BeautifulSoup Scrape Tische
- 24. scrape Url und Text von der Website mit lxml Python
- 25. ASP.NET Screen Scrape Post Simulieren
- 26. Data-Attribut mit Goutte scrape?
- 27. Fehler mit VBA Web Scrape
- 28. Python und beautifulsoup - Scrape Text
- 29. Bildschirm scrape HTML Kopf Inhalt?
- 30. Python Scrape Stil Anzeige: keine
Danke das hat funktioniert, aber jetzt versuche ich auf https://www.edline.net/UserDocList.page zuzugreifen? und ich habe 'r = s.get ('https://www.edline.net/UserDocList.page?') print (r.content)' aber es lädt die Seite nicht, sondern gibt eine Fehlermeldung aus. Ich vermute, dass es weiß, dass es keine echte Person ist. Kann ich etwas anders machen? –
@CameronBurrows Fehler von der Website oder Code? – viviwill