使用selenium python查找动态网站的web元素
我想根据一些字段的web元素(xpath、类等)来刮取它们的文本使用selenium python查找动态网站的web元素,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,我想根据一些字段的web元素(xpath、类等)来刮取它们的文本 ...... ...... ...... ...... 我需要的文本 ...... ...... ...... ...... 我不需要文本 我的朋友,这是最好的解决方案,当你看到这篇文章时,右键点击网页。在DOM检查器中右键单击,然后单击复制->复制完整XPath值。然后您可能需要执行.text.source来获取这些值。但是试着玩一下。要打印我需要的文本,可以使用以下任一选项: 使用css\u选择器和get\u属性():
......
......
......
......
我需要的文本
......
......
......
......
我不需要文本
我的朋友,这是最好的解决方案,当你看到这篇文章时,右键点击网页。在DOM检查器中右键单击,然后单击复制->复制完整XPath值。然后您可能需要执行.text.source来获取这些值。但是试着玩一下。要打印我需要的文本,可以使用以下任一选项:
- 使用
和css\u选择器
:get\u属性()
- 使用
和文本属性:xpath
print(driver.find_element_by_xpath("//div[@class='myOnlyElement']//div[@class='reaction']").text)
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='myOnlyElement']//div[@class='reaction']"))).text)
理想情况下,要打印文本我需要的文本,您必须对位于()的元素的
可见性进行归纳,并且您可以使用以下任一选项:
- 使用
CSS\u选择器
和get\u属性()
:
- 使用
XPATH
和文本属性:
print(driver.find_element_by_xpath("//div[@class='myOnlyElement']//div[@class='reaction']").text)
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='myOnlyElement']//div[@class='reaction']"))).text)
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
您可以在中找到相关的讨论
奥特罗
链接到有用的文档:
- 方法
获取元素的给定属性或属性。
- 属性返回元素的文本。
driver.find\u element\u by\u class\u name是正确的语法。另外,只需检查是否有MyLem。或者使用waits。您可以使用find elements获取与类匹配的元素数组。。。然后迭代并获取InnerHTML:thiselement.get_属性('InnerHTML')以确定它是您需要的文本还是不需要的文本。问题是,每当我访问任何链接时,我都希望从第一个元素获取信息。是否存在。如果元素存在,获取文本;如果元素不存在,打印“无文本”。感谢您的帮助。但fullXPATH在动态网站中不起作用。很不幸,这是真的。。对不起,我的朋友