目前,我正試圖從一個網站上刮取資料。因此,我正在使用Selenium。 一切都在正常作業。直到我意識到我必須抓取一個工具提示文本。
我在 stackoverflow 上找到了不同的執行緒,它們提供了一個答案。無論如何,到目前為止我還沒有設法解決這個問題。
這個跨度與工具提示沒有關系,我猜。因為工具提示看起來像這樣。
實際上有一個跨度,我無法閱讀。我試著這樣讀:
bewertung = driver.find_elements_by_xpath('//span[@class="a-icon-alt"] ')
for item in bewertung:
print(item.text)
所以Selenium找到了這個元素。但不幸的是,'.text'沒有回傳任何東西。為什么它總是空的? 第一張截圖中的span是什么?另外,它在網站上也沒有顯示。
uj5u.com熱心網友回復:
既然你提到Selenium找到這個元素,我想你一定是列印了bewertunglist
len。
類似于
的內容print(len(bewertung)
如果這個串列中有一些元素,你可能可以使用innerText
bewertung = driver.find_elements_by_xpath('//span[@class="a-icon-alt"] ')
for item in bewertung:
print(item.get_attribute("innerText"/span>)
注意,你使用的是find_elements,它不會拋出任何錯誤,相反,如果它沒有找到element,它將回傳一個空的串列。
因此,如果你使用find_element,它將拋出確切的錯誤。
另外,我認為你為span使用了xpath(它并沒有出現在UI中,有時它們會在某些動作被觸發時才出現。)
你可以嘗試用這個xpath代替:
//i[@data-hook='average-star-rating-anywhere']//span[@data-hook='acr-average-star-rating-text']
代碼中是這樣的:
bewertung = driver.find_elements_by_xpath("/i[@data-hook='average-stars-rating-anywhere']/span[@data-hook='acr-average-stars-rating-text']")
for item in bewertung:
print(item.text)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/309744.html
標籤:

