尝试根据文本

时间:2017-03-20 14:02:03

标签: python python-3.x selenium

好的,所以我试图从Craigslist中提取链接。具体来说,我试图找到class = result-title的链接,例如

<a href="/gbs/fee/6023288599.html" data-id="6023288599" class="result-title hdrlnk">NICE 2 BR NEAR BOSTON COLLEGE-  HT/HW INCLUDED - ON COMM AVE 9/1</a>

但由于某种原因,以下代码

        address = driver.find_elements_by_class_name('result-title')[i].text
        address2 = driver.find_element_by_partial_link_text(address).text
        url3 =url2+address2
        print(url3)
        driver.get(url3)

不起作用。

例如,如果它找到了之前的html链接,address2将以某种方式最终成为 NICE 2 BR BOSTON COLLEGE附近 - HT / HW包含 - 在COMM AVE 9/1 ,即使它应该是 /gbs/fee/6023288599.html

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

你在这里可以做的是:

您可以获取href的属性值,以获取/gbs/fee/6023288599.html中的address2,而不是获取网络元素的文字。

所以,

address2 = driver.find_element_by_partial_link_text(address).text 

需要更改为

address2 = driver.find_element_by_partial_link_text(address).get_attribute('href')

我希望这会有所帮助。