当我试图在ul中获得li元素时,我只得到一个li,其他什么都没有

2024-04-16 09:57:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为我的公司构建一个数据提取,我需要在html列表中获取数据,但是当我执行代码时,我只获得下面单个li元素的文本,我共享了代码

网站源和我的结果的截图

我的代码:

from selenium import webdriver
driver = webdriver.Safari()

driver.get("http://turkosb.com/kaynarca-mobilya-ihtisas-organize-sanayi-bolgesi.html")


results = driver.find_element_by_xpath("//ul[@class='firma-info']/li")
print(results.text)

Heres the site and the list data I want to extract

但是,尽管我付出了努力,我得到的结果是一样的,我只得到第一个li元素的文本,如下所示:

YETKİLİ KİŞİ: Fikret ARSLAN 

2条回答

这是因为driver.find_element_by_xpath正在返回第一个元素。它可能会高亮显示DOM中的所有li,但您要求查找单个元素,它会返回第一个元素

使用find_elements查找所有li标记,然后迭代以从中获取文本

results = driver.find_elements_by_xpath("//ul[@class='firma-info']/li")
for result in results:
     print(result.text)

find_element是获取唯一一个web元素。其中asfind_elements用于获取web元素列表。

因此而不是

results = driver.find_element_by_xpath("//ul[@class='firma-info']/li")

试试这个:

results = driver.find_elements_by_xpath("//ul[@class='firma-info']/li")

现在find_elements的结果是一个列表迭代如下所示:

for res in results:
    print(res.text)

相关问题 更多 >