簡體   English   中英

selenium webbrowser:如何通過迭代提取多個屬性名稱?

[英]selenium webbrowser: How to extract several attribute names by iteration?

我正在嘗試從火車搜索平台(https://www.thetrainline.com)抓取數據(出發時間、承運人、價格等),但在提取屬性名稱時遇到問題。 所有連接的 HTML 如下所示,我想獲取所有運營商的列表,即。 我想從屬性“ data-test-carrier-neme ”中獲取相應的運營商,這里是“ trenitalia ”。

div class="_1moixrt _dtnn7w" tabindex="0"span data-test-carrier-name="trenitalia"

例如,我只是通過迭代收集屬性文本(參見語法)現在對於運營商,我沒有成功收集屬性名稱。 我只獲得第一次迭代/第一次連接的運營商名稱,而不是以下連接。

dep_times = driver.find_elements_by_xpath('//div[@class="_1rxwtew "]')
dep_times_list = [x.text for x in dep_times]

#First Approach:我得到屬性名稱,但僅適用於第一個連接

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]

Output:['trenitalia']

#Second Approach:我訪問所有連接的屬性但沒有獲取屬性的名稱:

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]

Output:[無,無,無,無,無,無]

有人可以調整我的代碼以解決我的問題嗎? 非常感謝您的幫助!!

第一種方法中使用的 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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM