我正在抓取一個網站,我在該網站上經常出現價值不等的情況。
一個 div 項的示例如下所示:
<div class="lang">
<i class="flag fr" qtip-tooltip="Fran?ais"></i>
<i class="flag nl" qtip-tooltip="Néerlandais"></i>
<i class="flag gb" qtip-tooltip="Anglais"></i>
<i class="flag it" qtip-tooltip="Italien"></i>
</div>
我想list在每個 div 的字串或串列中獲取所有 gtip-tooltip 值。我怎樣才能做到這一點?
我試過
langs = driver.find_elements(by=By.XPATH,value='//div[@]')
但我得到空字串值。
uj5u.com熱心網友回復:
您已經非常接近您的目標 - 只需迭代ResultSetof即可實作它langs,找到每個<i>元素的所有元素<div>并在再次迭代時提取它們的屬性:
langs = driver.find_elements(By.XPATH,'//div[@]')
for lang in langs:
tooltips = [l.get_attribute('qtip-tooltip') for l in lang.find_elements(By.XPATH,'.//i')]
## as list
print(tooltips)
## as comma separated string
print(','.join(tooltips))
輸出
['Fran?ais', 'Néerlandais', 'Anglais', 'Italien']
或者
Fran?ais,Néerlandais,Anglais,Italien
要使語言div成為一種list或更好set的具有獨特價值的語言,您可以使用:
set(l.get_attribute('qtip-tooltip') for l in driver.find_elements(By.XPATH,'//div[@class="lang"]/i'))
輸出
{'Anglais', 'Fran?ais', 'Italien', 'Néerlandais'}
uj5u.com熱心網友回復:
嘗試 :
elements = driver.find_elements_by_css_selector('div.lang')
然后你可以通過回圈訪問你的元素:
For element in elements :
print(element)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/474368.html
