【问题标题】:How to select all tags with selenium and python如何使用 selenium 和 python 选择所有标签
【发布时间】:2015-05-11 19:14:41
【问题描述】:
<a title="Citrate of Magnesia for Consumers" href="/cdi/citrate-of-magnesia-solution.html">
<b>Citrate of Magnesia</b>

我正在尝试从药物网站提取数据,如何选择 &lt;b&gt;&lt;/b&gt; 标签中的所有文本?因为那是我想要的文字。

我试过*//a[@b]但还是不行。

【问题讨论】:

    标签: python selenium xpath selenium-webdriver


    【解决方案1】:

    假设您尝试依赖前面的a 元素,请使用following-sibling,例如:

    //a/following-sibling::b
    

    Python 代码:

    b = driver.find_element_by_xpath("//a/following-sibling::b")
    print(b.text)
    

    如果您想要多个 b 标记具有 a 作为前面的元素:

    for b in driver.find_elements_by_xpath("//a/following-sibling::b"):
        print(b.text)
    

    聊天后提供的解决方案:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    driver = webdriver.Chrome()
    driver.get("http://www.drugs.com/drug-class/laxatives.html?condition_id=&generic=0&sort=rating&order=desc") 
    
    # wait for the table list to load
    table = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "table.data-list")))
    
    for b in table.find_elements_by_css_selector("tr td > a[href] > b"):
        print(b.text)
    

    【讨论】:

    • 等待我在 xpath 中输入的内容?
    • @HalcyonAbrahamRamirez 我添加了一个示例 python 代码。希望对您有所帮助。
    • 非常感谢。这会拉出里面的文字吗?还是只定位 标签?
    • @HalcyonAbrahamRamirez 使用代码示例更新了代码以获取文本
    • 非常感谢。 xpath 的东西很混乱。是否愿意为我指明正确的方向以更好地学习它?
    猜你喜欢
    • 1970-01-01
    • 2019-09-14
    • 2017-03-14
    • 2018-02-04
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多