没有得到想要的XPath

问题描述 投票:0回答:1

总而言之,我如何获得一个XPath来填补我的脚本中的可能性。

一个提供不同值的XPath。

groups = ".//div[contains(@class, 'gl-ParticipantOddsOnlyDarker gl')]"

xp_ba3 = ".//span[contains(@class, 'gl-Participa')]"

两个组的XPath需要和xp_ba3需要相同的长度和不同才能正常运行(我相信)。

期望的XPath看起来像:

XPath://div[contains(@class, 'gl-Market_HasLabels')]/following-sibling::div[contains(@class, 'gl-Market_PWidth-12-3333')][1]//div[contains(@class, 'gl-ParticipantOddsOnly')]

这有效,但是当我添加这个逻辑并运行script时 - 它不起作用。

网页odds我追求。

我的输出而不是不同的赔率看起来像:

[['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87'], ['2.87']]

我怎样才能获得工作的机会?

HTML:

<div class="gl-ParticipantOddsOnlyDarker gl-ParticipantOddsOnly gl-Participant_General sl-MarketCouponAdvancedBase_LastChild " >
        <span class="gl-ParticipantOddsOnly_Odds" > 2.45 </span>
    </div ><span class="gl-ParticipantOddsOnly_Odds">2.45</span> 

来自website

python selenium xpath web-scraping
1个回答
0
投票

因此,主要问题是他们的HTML是按列而不是行设置的,这使得获取相关数据变得更加困难。

对于游戏名称,您可以使用CSS选择器

div.sl-CouponParticipantWithBookCloses_NameContainer

对于1中的赔率,您需要使用XPath

//div[contains(@class,'sl-MarketCouponValuesExplicit33')][./div[contains(@class,'gl-MarketColumnHeader')][.='1']]//span[@class='gl-ParticipantOddsOnly_Odds']

XPath正在寻找DIV,它是列的父容器。然后它会在标题中查找包含“1”的那个,然后从那个中获取赔率。

您可能希望进行一些基本验证,即每次匹配返回的元素数量或您的赔率可能与正确的游戏不匹配。他们目前正在返回相同的数字。

© www.soinside.com 2019 - 2024. All rights reserved.