我对Webscraping非常陌生,我正努力从特定元素中获取两个属性的值
我想找到data-diffusion-decimal
和data-diffusion-history
soup.findAll('div',attrs={"class":"RC-runnerPriceWrapper"})
我得到的是:
<div class="RC-runnerPriceWrapper PC-bestOddsContainer js-diffusionHorsesList js-horsesList js-bestOddsPriceContainer" data-diffusion-horsename="Dinons"> <a class="ui-btn RC-runnerPrice ui-priceBtn_noPrice js-diffusionPriceValue js-betHandler js-runnerPrice js-runnerPriceBestOdds" data-test-selector="RC-cardPage-runnerPrice" href="#"></a>
据我所知,但是结果中没有包含我所需要的。任何建议,不胜感激
答案 0 :(得分:2)
也许这些属性是在javascript中动态设置的。要知道这一点,请不要使用控制台,而是右键单击页面,然后单击“查看页面源代码”。
如果您无法在源代码中找到这些属性,请使用javascript设置它们,并且需要使用Selenium之类的工具来执行页面的动态部分。
解决方法:使用浏览器控制台的“网络”标签,您可以尝试查看是否执行了ajax请求以获取属性中的数据。您可以调用相同的请求,也可以获取json格式的信息,而不用解析页面。
答案 1 :(得分:1)
使用硒之类的东西
driver.find_element_by_css_selector('div.RC-runnerPriceWrapper').get_attribute('data-diffusion-decimal')