使用selenium提取网站的面包屑
我需要提取此网站的面包屑: 我试图检查元素并复制xpath,但它没有提取它使用selenium提取网站的面包屑,selenium,xpath,web-scraping,css-selectors,webdriverwait,Selenium,Xpath,Web Scraping,Css Selectors,Webdriverwait,我需要提取此网站的面包屑: 我试图检查元素并复制xpath,但它没有提取它 从selenium导入webdriver driver=webdriver.Firefox() 司机,上车https://www.woolworths.com.au/Shop/Browse/drinks/cordials-juices-iced-teas/iced-teas') 驱动程序。通过xpath查找元素('/*[@id=“center panel”]/div/wow tile list with content/
从selenium导入webdriver
driver=webdriver.Firefox()
司机,上车https://www.woolworths.com.au/Shop/Browse/drinks/cordials-juices-iced-teas/iced-teas')
驱动程序。通过xpath查找元素('/*[@id=“center panel”]/div/wow tile list with content/ng transclude/wow browse tile list/wow tile list/div/div/div[1]/div[1]/wow breadcrumbs/div/ul/li[4]/span/span')
驱动程序。通过css选择器查找元素(“#中心面板>div>包含内容的wow平铺列表>ng transclude>wow浏览平铺列表>wow平铺列表>div>div.tileList>div.tileList-headerContainer>wow面包屑>div>ul>li:n个孩子(4)>跨度>跨度”)
如何继续?您试图刮取的页面是用Angular编写的,这意味着大多数
DOM元素都是由JavaScript AJAX代码动态加载的,一旦加载页面,它们就不存在了。(driver.get
函数返回)
您应该使用until
函数来定位这些元素
下面是使用您提供的XPATH的工作示例:
driver.get('https://www.woolworths.com.au/Shop/Browse/drinks/cordials-juices-iced-teas/iced-teas')
try:
element = WebDriverWait(driver, 1).until(
EC.presence_of_element_located((By.XPATH, '//*[@id="center-panel"]/div/wow-tile-list-with-content/ng-transclude/wow-browse-tile-list/wow-tile-list/div/div[1]/div[1]/wow-breadcrumbs/div/ul/li[4]/span/span'))
)
print(element.text) ' this outputs Iced Teas
except TimeoutException:
print("Timeout")
要打印网站的面包屑:您必须诱导WebDriverWait,以获得所需的元素的可见性\u located()
,并且您可以使用以下任一方法:
- 使用
CSS\u选择器
和get\u属性()
方法:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "ul.breadcrumbs-linkList li:nth-child(4) span span"))).get_attribute("innerHTML"))
- 使用
XPATH
和text
属性:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//ul[@class='breadcrumbs-linkList']//following-sibling::li[4]//span//span"))).text)
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
奥特罗
根据文件:
- 方法
获取元素的给定属性或属性。
- 属性返回元素的文本。
- 下面的一个用于我的验证
//*[span='first text'和span='Search results for“second text”]您遇到了什么错误请将错误添加到问题中我有一个xpath命令和css选择器的空列表,我有:Message:找不到元素。嗨,Sukumar,欢迎来到StackOverflow!你能把你的代码格式化吗?你可以一直读下去,谢谢!