如何使用selenium和python选择所有标记

2024-06-10 01:24:10 发布

您现在位置:Python中文网/ 问答频道 /正文

<a title="Citrate of Magnesia for Consumers" href="/cdi/citrate-of-magnesia-solution.html">
<b>Citrate of Magnesia</b>

我正在尝试从一个药物网站中提取数据,如何选择<b></b>标签中的所有文本?因为这就是我想要的文本。在

我试过*//a[@b],但没用。在


Tags: of文本fortitle网站htmlhref药物
1条回答
网友
1楼 · 发布于 2024-06-10 01:24:10

假设您试图依赖前面的a元素,请使用^{},例如:

//a/following-sibling::b

Python代码:

^{pr2}$

如果希望多个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)

相关问题 更多 >