如何从带有硒的A标签获得文本?

时间:2020-07-25 06:49:50

标签: python selenium selenium-webdriver text getattribute

我一直在尝试在线刮取某些产品,但是当我尝试从A标签打印标题时,它会为我提供输出

现在这是我的代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import pandas as pd  

PATH = "C:\Program Files (x86)\chromedriver.exe"

driver = webdriver.Chrome(PATH)
driver.get("https://egypt.souq.com")

dotd = "/html/body/div[2]/div/main/div[1]/div[1]/div/div[1]/a/img"

driver.find_element_by_xpath(dotd).click()

def get_deals():
    title_xpath = "/html/body/div[1]/div/main/div/div[4]/div[3]/div[2]/div[1]/div[1]/div/div[2]/ul/li[1]/h6/span/a"
    titles = driver.find_elements_by_xpath(title_xpath)
    for title in titles:
        print(title)


get_deals()
print("successful")

2 个答案:

答案 0 :(得分:0)

问题是您正在打印包含所有属性的对象,而不是 text属性

因此,您唯一需要更改的就是使用print(title)而不是使用print(title.text)

答案 1 :(得分:0)

print()的输出...

<selenium.webdriver.remote.webelement.WebElement (session="48e7924c296324a7a5a843d9ccab36fb", element="b8871651-23af-42c6-a49a-5b93fe932653")>

...除了WebElement本身没有其他错误。


您似乎很近。提取元素后,可以在元素内提取 text ,您可以使用以下任一Locator Strategies

  • 使用 text 属性:

    for title in titles:
        print(title.text)
    
  • 使用get_attribute()属性:

    for title in titles:
        print(title.get_attribute("innerHTML"))
    

参考

您可以在以下位置找到一些相关的讨论