为我的网络爬虫(Python,Selenium)查找多个x_path

时间:2019-02-28 05:07:01

标签: python selenium

我正在抓取的网页中的元素是由两个x_path之一找到的,即使这些元素几乎相同。基本上,某些元素旁边有一个图标,而有些则没有。但是我对该图标不感兴趣,我只是在刮擦它旁边的数字。

对于带有图标的数据,我使用:

driver.find_elements_by_xpath('//a[@class="in-match"]')

对于没有图标的数据,我使用:

driver.find_elements_by_xpath('//td[@class="table-main__detail-odds table-main__detail-odds--first"]')

我需要我的刮板才能找到这两件事之一。重要的是,它要同时查找它们,以使抓取的顺序与数据在页面上显示的顺序相同。

这似乎是一个简单的问题,但是我真的不确定如何做到。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以在XPath中使用or条件来匹配两个条件,如下所示:

locator = '//a[@class="in-match" or @class="table-main__detail-odds table- main__detail-odds--first"]'
driver.find_elements_by_xpath(locator)

这将同时匹配两个class的元素。