Ich versuche, JavaScript-Daten von einer Website zu kratzen. Momentan habe ich die Herausforderung, die Anzahl der Follower von this website zu kratzen. Hier ist mein Code so weit:Scraping Javascript mit Selenium über Python
import os
from selenium import webdriver
import time
chromedriver = "/Users/INSERT USERNAME/Desktop/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://freelegalconsultancy.blogspot.co.uk/")
time.sleep(5)
title = driver.find_element_by_class_name
print title
Wie Sie sehen können, habe ich eine chromedriver Datei habe auf meinem Desktop. Wenn ich den Code ausführe, bekomme ich folgendes Ergebnis:
<bound method WebDriver.find_element_by_class_name of <selenium.webdriver.chrome.webdriver.WebDriver (session="dd9e5d3f429bc2810c30ebe7067e4e22")>>
Ich habe versucht, dies mit einer for-Schleife zu iterieren, aber es gab einen Fehler zurück. Weiß jemand wie ich die Javascript Daten bekommen kann und letztendlich die Anzahl der Follower bekomme?
EDIT:
So wie pro Antrag, ich habe meinen Code dies geändert:
import os
from selenium import webdriver
import time
chromedriver = "/Users/INSERT USERNAME/Desktop/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://freelegalconsultancy.blogspot.co.uk/")
time.sleep(5)
title = driver.find_element_by_class_name("member-title")
print title
Aber ich habe jetzt diesen Fehler:
Traceback (most recent call last):
File "C:\Users\INSERT USERNAME\Desktop\blogger_v.1.py", line 11, in <module>
title = driver.find_element_by_class_name("member-title")
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 413, in find_element_by_class_name
return self.find_element(by=By.CLASS_NAME, value=name)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 752, in find_element
'value': value})['value']
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"class name","selector":"member-title"}
(Session info: chrome=53.0.2785.143)
(Driver info: chromedriver=2.24.417431 (9aea000394714d2fbb20850021f6204f2256b9cf),platform=Windows NT 6.1.7601 SP1 x86_64)
Alle Ideen, wie Ich kann es umgehen?
EDIT:
Also habe ich meinen Code dies geändert:
import os
from selenium import webdriver
import time
chromedriver = "/Users/INSERT USERNAME/Desktop/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://freelegalconsultancy.blogspot.co.uk/")
time.sleep(5)
title = driver.find_element_by_class_name("item-title")
print title
Und ich dieses Ergebnis:
<selenium.webdriver.remote.webelement.WebElement (session="5fe8fb966edd26fdf808da07f99d4109", element="0.9924860218635834-1")>
Wie würde ich mich über nur alle Druck das Javascript? Ist das überhaupt möglich?
Wenn ich alle Javascript Daten drucken wollte, wissen Sie, wie ich über das Tun das gehen würde? – semiflex