繁体   English   中英

通过Python使用Selenium抓取JavaScript

[英]Scraping Javascript using Selenium via Python

我正在尝试从网站上抓取javascript数据。 目前,我面临的挑战是设法从该网站吸引大量关注者。 到目前为止,这是我的代码:

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

如您所见,我的桌面上有一个chromedriver文件。 执行代码时,将得到以下结果:

<bound method WebDriver.find_element_by_class_name of <selenium.webdriver.chrome.webdriver.WebDriver (session="dd9e5d3f429bc2810c30ebe7067e4e22")>>

我尝试使用for循环对此进行迭代,但是返回了错误。 有谁知道我如何获取Javascript数据并最终获得关注者数量?

编辑:

因此,根据请求,我将代码更改为此:

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

但是我现在得到这个错误:

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)

关于如何解决这个问题的任何想法?

编辑:

因此,我将代码更改为:

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

我得到这个结果:

<selenium.webdriver.remote.webelement.WebElement (session="5fe8fb966edd26fdf808da07f99d4109", element="0.9924860218635834-1")>

我将如何仅打印所有JavaScript? 这有可能吗?

您需要提供您要查找的类名称作为参数。

title = driver.find_element_by_class_name("TheNameOfTheClass")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM