如何使用无头硒从div类中提取文本

时间:2018-08-17 13:34:59

标签: python selenium web-scraping

我正在尝试从以下div标签中提取“ 0%”:

<div class="sem-report-header-td-diff ">0%</div>

我当前的代码是:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(executable_path='mypath/chrome.exe',
                      chrome_options=options)

url = 'https://www.semrush.com/info/burton.com'
driver.get(url)
driver.implicitly_wait(2)
change_elements = driver.find_elements_by_xpath(xpath='//div[@class="sem-report-header-td-diff "]')

不确定我在做什么错。这适用于href标记,但不适用于此。

2 个答案:

答案 0 :(得分:1)

根据您共享的HTML提取文本 0%,您需要使用方法get_attribute("innerHTML"),并且可以使用以下任一解决方案:

  • css_selector

    myText = driver.find_element_by_css_selector("div.sem-report-header-td-diff").get_attribute("innerHTML")
    
  • xpath

    myText = driver.find_element_by_xpath("div[@class='sem-report-header-td-diff']").get_attribute("innerHTML")
    

答案 1 :(得分:0)

首先,不是“元素”,而是“元素”。第二点是,您没有收到ttext。你刚刚叫元素。

所以,这是代码:

  

element_text =   driver.find_element_by_xpath(“ // div [@ class ='sem-report-header-td-diff']”)。text