Selenium: 获取属性一个条件

2024-09-27 21:27:26 发布

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

我刮一个网站,确实有一个解决办法,但我相信有一个更好的。我不喜欢国际单项体育联合会的声明,并认为可以有一个更好的。你知道吗

 driver = webdriver.Chrome("....chromedriver_win32/chromedriver.exe")
 driver.get("https://www.transfermarkt.de/yannick-gerhardt/leistungsdatendetails/spieler/119277/saison//verein/0/liga/0/wettbewerb//pos/0/trainer_id/0/plus/1")
 verein = []
 bilder=driver.find_elements_by_tag_name("img")
 for b in bilder:
     if "tiny_wappen" in b.get_attribute('class'):
         verein.append(b.get_attribute('alt'))

 <img src="https://tmssl.akamaized.net//images/wappen/tiny/21087.png? 
lm=1503056592" title="&nbsp;" alt="VfL Wolfsburg U17" class="tiny_wappen">

这是输出,即球员所效力的所有俱乐部。你知道吗

 ['VfL Wolfsburg',
  'VfL Wolfsburg',
  'VfL Wolfsburg',
  'VfL Wolfsburg',
  'VfL Wolfsburg',
  'VfL Wolfsburg',
  'VfL Wolfsburg',
  'VfL Wolfsburg',
  '1.FC Köln',
  '1.FC Köln',
  '1.FC Köln',
  '1.FC Köln',
  '1.FC Köln',
  '1.FC Köln',
  '1.FC Köln U19',
  '1.FC Köln II',
  '1.FC Köln U19',
  '1.FC Köln U19',
  '1.FC Köln U17',
  '1.FC Köln U17',
  '1.FC Köln U17']

Tags: httpsimggetdriverchromedrivertinyfcln
2条回答

更快更干净的解决方案是使用Javascript:

 verein = driver.execute_script("return [...document.querySelectorAll('img.tiny_wappen')].map(element => element.getAttribute('alt'));")

含纯硒:imgtiny_wappen

bilder=driver.find_elements_by_css_selector("img.tiny_wappen")
for b in bilder:
     verein.append(b.get_attribute('alt'))

您可以通过以下一个行获得所需的输出:

verein = [img.get_attribute('alt') for img in driver.find_elements("css", ".tiny_wappen")]

相关问题 更多 >

    热门问题