总而言之,我如何获得一个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
因此,主要问题是他们的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”的那个,然后从那个中获取赔率。
您可能希望进行一些基本验证,即每次匹配返回的元素数量或您的赔率可能与正确的游戏不匹配。他们目前正在返回相同的数字。