我尝试访问曼联主场的结果,但无法访问。。这是网站页面
这是页面下面一段HTML代码:
<div id="g_1_l2dtbMED" title="Click for match detail!" class="event__match event__match--static event__match--last event__match--oneLine"><div class="event__time">04.10. 17:30</div><div class="event__participant event__participant--home"><svg class="card___2ip_DLm icon--redCard icon--redCard-first icon--redCard-last"><title></title><use xlink:href="/res/_fs/build/symbols.f1bc6b2.svg#card"></use></svg>Manchester Utd</div><div class="event__scores fontBold"><span>1</span> - <span>6</span></div><div class="event__participant event__participant--away fontBold">Tottenham</div><div class="event__part">(1 - 4)</div><span class="wld wld--l" title="Loss">L</span></div>
我要搜索分析的结果是'L'并且位于balise中<span>
。
这是我尝试解析的代码:
driver = webdriver.Chrome()
url = "https://www.flashscore.com/team/manchester-united/ppjDR086/results/"
driver.get(url)
Team = 'manchester Utd'
results = WebDriverWait(driver, 20).until(EC.find_elements((By.XPATH,"//div[@class='event__participant--home' and contains(text(),'"+ Team +"')]//ancestor::div/span")))
print(len(results))
但是,这在20秒后向我投放了异常“ TimeoutException”,这是搜索的时间限制。
您正在寻找的定位器是
//div[contains(@class,'event__participant--home')][text()='Manchester Utd']//following-sibling::span[1]
^ find a DIV that contains the class indicating a home game
^ that also contains the team name
^ then find the first sibling SPAN that follows
该定位器将仅针对主游戏找到包含L,W,D等的元素。
如果要等待元素,则将要等待可见的,而不是存在的。存在是指元素仅在DOM中但不一定可见的情况。如果要从页面上抓取文本,则需要等待可见。您可以使用来做到这一点EC.visibility_of_all_elements_located()
。参见文档。如果您尝试在页面存在但不可见时对其进行爬网,它将引发异常。
您更新的代码如下
driver = webdriver.Chrome()
url = "https://www.flashscore.com/team/manchester-united/ppjDR086/results/"
driver.get(url)
Team = 'Manchester Utd'
results = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH,"//div[contains(@class,'event__participant--home')][text()='" + Team + "']//following-sibling::span[1]")))
print(len(results))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句