enter image description here我在Python中使用Selenium从我的作品中抓取一些来自互联网的数据。 但是,我无法通过此HTML源代码获取电话号码(即04 81 68 30 45):
'<a class="_2sNbI ObuDQ GXQkc _2BP2c" href="tel:0481683045" title="Contact le vendeur" ><!-- react-text: 619 -->04 81 68 30 45<!-- /react-text --></a>'
我尝试了该代码,但它不适用于react-text代码。我有一个空字符串
from selenium import webdriver
driver = webdriver.Chrome('chromedriver')
driver.get('https://www.leboncoin.fr/locations/1107498086.htm/')
try:
elem = driver.find_element_by_xpath('//div[@class="_2sPVF"]//button')
elem.click()
except:
pass
elem = driver.find_element_by_xpath('//span[@class="_28rnK"]/a')
tel = elem.text
print('Contact:', tel)
如果有人知道如何做到这一点,我将非常感激。
***感谢JeffC的回答,问题解决了,结果是xpath中有5个隐藏元素(电话号码是第4个)。
答案 0 :(得分:1)
在这种情况下,我通常会调查页面并确保我使用的定位器找到我想要的元素。我通常使用Chrome中的开发控制台并使用<div class="wrapper">
<div class="template">
<h1>header #1</h1>
<p>some text for #1</p>
<div class="static-container">
<div>
<p>a b c 1 2 3</p>
<p>d e f 4 5 6</p>
</div>
</div>
</div>
</div>
<button>change template</button>
<div class="new-template">
<h1>header #2</h1>
<p>some text for #2</p>
<div class="static-container"></div>
</div>
测试CSS选择器和$$()
来测试XPath。
正如您所发现的那样,您要查找的元素不是返回的元素,因为它在页面上不是唯一的,并且不是与定位器匹配的第一个元素集合。