使用xpath / beautiful汤提取另一个元素之后的元素

时间:2017-09-20 20:05:10

标签: python xpath beautifulsoup

enter image description here

我正在寻找一种可靠的方式来提取球队名称和市场赔率。鉴于以上代码段,这将是

西布朗 曼城 28/1 6/1 1/8

我还应该提一下,在给定的夹具ID之后我只需要团队名称和市场赔率(位于'data-fixtureid'属性中)。

我尝试了以下xpath表达式:

    tree.xpath('//span[@class="ippg-Market_Truncator"]/following::div[@data-fixtureid="66705048"]//text()')

提取团队名称,但不会产生所需的输出。

如果有人能指出我正确的方向,我会很感激。我不一定需要使用xpath,但也可以使用漂亮的汤。

1 个答案:

答案 0 :(得分:1)

这个答案与xpath不同,因为我使用$facilities array() -> array('weekdays') -> array('maandag') -> values "opening_hours", "closing_hours", "extra_info" find_all()函数来实现您想要的结果。

首先,我使用类名find()

查找所需的所有行

其次,我遍历该列表并查找具有类podEventRow的团队名称,然后删除/替换不必要的空格。

第三,在同一个循环中,我使用类名ippg-Market_CompetitorName查找市场赔率,然后遍历每个赔率以获取每个赔率内的文本。

ippg-Market_Topic

PS:我使用selenium来获取完整的页面源,因为该站点使用JavaScript来加载表。