【问题标题】:How to get text from an A tag with selenium?如何从带有硒的A标签中获取文本?
【发布时间】:2020-07-25 06:49:50
【问题描述】:

我一直在尝试在线抓取一些产品,但是当我尝试从 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")

【问题讨论】:

    标签: python selenium selenium-webdriver text getattribute


    【解决方案1】:

    print()的这个输出...

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

    ...除了WebElement 本身之外没有任何错误。


    看来你很接近了。由于您能够提取元素,因此要提取元素中的 文本,您可以使用以下任一 Locator Strategies:

    • 使用文本属性:

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

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

    参考

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

    【讨论】:

    • 工作了!但它只打印一个标题,即使页面有多个标题
    • @RazerPYOfficial 很高兴能为您提供帮助。但这听起来是一个不同的问题。请您对您的新要求提出一个新问题吗?
    • 我发布了另一个问题
    【解决方案2】:

    问题是您打印的是 object,它包含所有属性,而不是 text 属性

    所以,你唯一需要改变的是,不要使用print(title),而是使用print(title.text)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      • 2017-09-07
      相关资源
      最近更新 更多