如何解决如何通过Python使用Selenium从标记中提取所有文本
要提取<a>
标签内的所有文本值,例如 ,您必须为引入webdriverwait ,visibility_of_all_elements_located()
并且可以使用以下任一解决方案:
-
使用
CSS_SELECTOR
:print([my_elem.get_attribute("innerHTML") for my_elem in webdriverwait(driver, 5).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "li.topLevel[data-types='Acrylics'] h5>a[href^='/products/product-details/?prod=']")))])
-
使用
XPATH
:print([my_elem.get_attribute("innerHTML") for my_elem in webdriverwait(driver, 5).until(EC.visibility_of_all_elements_located((By.XPATH, "//li[@class='topLevel' and @data-types='Acrylics']//h5[@class]/a[starts-with(@href, '/products/product-details/?prod=')]")))])
-
:您必须添加以下导入:
from selenium.webdriver.support.ui import webdriverwait
from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
解决方法
这是我要从中提取数据的网站链接,我试图href
在锚标记下获取属性的所有文本。这是示例html:
<div id="borderForGrid" class="border">
<h5 class="">
<a href="/products/product-details/?prod=30AD">A/D TC-55 SEALER</a>
</h5>
<div id="borderForGrid" class="border">
<h5 class="">
<a href="/products/product-details/?prod=P380">Carbocrylic 3356-1</a>
</h5>
我想提取所有文本值,例如['A/D TC-55 SEALER','Carbocrylic 3356-1']
。
我尝试了:
target = driver.find_element_by_class_name('border')
anchorElement = target.find_element_by_tag_name('a')
anchorElement.text
但它给出''
(空)字符串。
关于如何实现的任何建议?
PS-在“ 产品类型”* 下选择单选按钮的第一个值 *
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。