Python selenium webbrowser:如何通过迭代提取多个属性名?

Python selenium webbrowser:如何通过迭代提取多个属性名?,python,selenium,web-scraping,attributes,web-crawler,Python,Selenium,Web Scraping,Attributes,Web Crawler,我正试图从火车搜索平台(https://www.thetrainline.com)我在提取属性名称时遇到了一个问题。所有连接的HTML如下所示,我想获得所有运营商的列表,即,我想从属性“数据测试运营商neme”中获得相应的运营商,这里“trenitalia” 例如,我只是通过迭代收集属性的文本(请参见语法) 现在对于carrier,我无法成功收集属性名称。我只获得了第一次迭代/第一次连接的运营商名称,但没有获得以下连接的名称 dep_times = driver.find_elements_by

我正试图从火车搜索平台
(https://www.thetrainline.com)
我在提取属性名称时遇到了一个问题。所有连接的HTML如下所示,我想获得所有运营商的列表,即,我想从属性“
数据测试运营商neme
”中获得相应的运营商,这里“
trenitalia

例如,我只是通过迭代收集属性的文本(请参见语法) 现在对于carrier,我无法成功收集属性名称。我只获得了第一次迭代/第一次连接的运营商名称,但没有获得以下连接的名称

dep_times = driver.find_elements_by_xpath('//div[@class="_1rxwtew "]')
dep_times_list = [x.text for x in dep_times]
#第一种方法:我获得属性名,但仅针对第一个连接

carrier1 = driver.find_elements_by_xpath('(//div[@class="_1moixrt _dtnn7w"])[1]/span[1]')

carrier1_list = [x.get_attribute("data-test-carrier-name") for x in carrier1]
输出:['trenitalia']

#第二种方法:我访问所有连接的属性,但不获取属性名称:

carrier1 = driver.find_elements_by_xpath('(//div[@class="_1moixrt _dtnn7w"])[1]/span[1]')

carrier1_list = [x.get_attribute("data-test-carrier-name") for x in carrier1]
输出:[无,无,无,无,无,无]


有人能调整我的代码来解决我的问题吗?非常感谢你的帮助

第一种方法中使用的xpath只返回一个元素,这就是为什么结果只显示第一个载体名称。试试这个-我刚刚从xpath中删除了索引[1]

carrier1 = driver.find_elements_by_xpath('(//div[@class="_1moixrt _dtnn7w"])/span[1]')

carrier1_list = [x.get_attribute("data-test-carrier-name") for x in carrier1]

嘿@Sureshamani!你完全正确-你的方法非常有效,我得到了我想要的承运人名单。非常感谢你的建议!!
carrier1 = driver.find_elements_by_xpath('(//div[@class="_1moixrt _dtnn7w"])/span[1]')

carrier1_list = [x.get_attribute("data-test-carrier-name") for x in carrier1]