Python Scraping JavaScript mit Selen und Schöne Suppe
Ich versuche zu kratzen ein JavaScript-aktiviert die Seite mit BS und Selen.
Ich habe den folgenden code so weit. Es immer noch nicht irgendwie erkennen, die JavaScript (und gibt einen null-Wert). In diesem Fall bin ich versucht zu kratzen, die Facebook-Kommentare in den Boden. (Inspect element wird der Klasse als postText)
Vielen Dank für die Hilfe!
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import BeautifulSoup
browser = webdriver.Firefox()
browser.get('http://techcrunch.com/2012/05/15/facebook-lightbox/')
html_source = browser.page_source
browser.quit()
soup = BeautifulSoup.BeautifulSoup(html_source)
comments = soup("div", {"class":"postText"})
print comments
- Sie möchten möglicherweise versuchen Sie es ein warten Sie auf die Seite - werden Sie wahrscheinlich verlassen, bevor die Seite hat Zeit, um vollständig zu laden (denken Sie daran, es ist nur wie ein browser und Erfahrungen Latenz). In deinem Fall könnte man wahrscheinlich lösen, indem man einfach wartet für eine bestimmte Zeit, aber die elegantere Lösung(en) finden Sie bei seleniumhq.org/docs/04_webdriver_advanced.jsp#implicit-waits
- Ich bin mir nicht sicher, ob das warten war die Frage, wie ich entfernt-browser.beenden() und das Programm ausgeführt. Es war kein Glück.
- Das problem ist eigentlich die Linie vor - es ist be -
page_source
bevor es zu einer Quelle geladen werden 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einige Fehler im code behoben werden unten. Aber die Klasse "postText" muss existieren anderswo, denn es ist nicht definiert in der original-source-code.
Meine überarbeiteten version der code wurde getestet und funktioniert auf mehreren websites.