总结一下,如何让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
答案 0 :(得分: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
,它是列的父容器。然后它会查找包含&#39; 1&#39;在标题中,然后从那个获得赔率。
您可能希望进行一些基本验证,即每次匹配返回的元素数量或您的赔率可能与正确的游戏不匹配。他们目前正在返回相同的数字。