【发布时间】:2021-08-30 22:58:15
【问题描述】:
我收到语法错误。
我的代码:
driver.find_element_by_xpath('//div[@class= ‘encontrados ng-star-inserted’]')
我想提取本站搜索结果中包含的文字:
【问题讨论】:
-
您要提取什么文本?
标签: python selenium selenium-webdriver xpath scrapy
我收到语法错误。
我的代码:
driver.find_element_by_xpath('//div[@class= ‘encontrados ng-star-inserted’]')
我想提取本站搜索结果中包含的文字:
【问题讨论】:
标签: python selenium selenium-webdriver xpath scrapy
您的定位器不正确。
试试这个:
results = driver.find_element_by_css('div.encontrados').text
或者这个
results = driver.find_element_by_xpath('//div[contains(@class,"encontrados")]').text
ng-star-inserted 不是固定的类名,而 div 标记名和 encontrados 类名给出了该元素的固定唯一标识。
此外,您的问题在于 '//div[@class= ‘encontrados ng-star-inserted’]' xpath 表达式。您正在尝试将' 用于外部和内部字符串定义,而您应该将' 用于其中一个,将" 用于另一个。 IE。或者这个:
`'//div[@class= "encontrados ng-star-inserted"]'`
或者这个
`"//div[@class= 'encontrados ng-star-inserted']"`
这就是您收到“不是有效的 XPath 表达”错误的原因,因为您的语法也不正确。
所以只需使用我在顶部使用的表达式之一:
results = driver.find_element_by_css('div.encontrados').text
或者这个
results = driver.find_element_by_xpath('//div[contains(@class,"encontrados")]').text
【讨论】:
time.sleep(10)放在results = driver.find_element_by_css('div.encontrados').text之前
卢卡斯,
此答案假设您想从网站中获取文本:
print(driver.find_element(By.XPATH, "//html/body").get_attribute('innerHTML'))
我在您共享的网络应用中找不到encontrados ng-star-inserted 类。
但如果你想检索网站中间的文本,你可以这样做:
for middle_text in driver.find_elements(By.CSS_SELECTOR, "li.resultado-item"):
print(middle_text.text)
【讨论】:
driver.find_element_by_xpath('//div[@class= ‘encontrados ng-star-inserted’]')
你有无效字符'包围属性值使用任何:
driver.find_element_by_xpath('//div[@class= "encontrados ng-star-inserted"]')
driver.find_element_by_xpath("//div[@class= 'encontrados ng-star-inserted']")
driver.find_element_by_xpath("//div[@class= \"encontrados ng-star-inserted\"]")
driver.find_element_by_xpath('//div[@class= \'encontrados ng-star-inserted\']')
【讨论】: