使用Python进行Web搜刮-获取属性值时出现问题

时间:2018-10-01 13:05:45

标签: python web-scraping beautifulsoup

我对Webscraping非常陌生,我正努力从特定元素中获取两个属性的值

我想找到data-diffusion-decimaldata-diffusion-history

enter image description here

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>

据我所知,但是结果中没有包含我所需要的。任何建议,不胜感激

2 个答案:

答案 0 :(得分:2)

也许这些属性是在javascript中动态设置的。要知道这一点,请不要使用控制台,而是右键单击页面,然后单击“查看页面源代码”。

如果您无法在源代码中找到这些属性,请使用javascript设置它们,并且需要使用Selenium之类的工具来执行页面的动态部分。

解决方法:使用浏览器控制台的“网络”标签,您可以尝试查看是否执行了ajax请求以获取属性中的数据。您可以调用相同的请求,也可以获取json格式的信息,而不用解析页面。

答案 1 :(得分:1)

使用硒之类的东西

driver.find_element_by_css_selector('div.RC-runnerPriceWrapper').get_attribute('data-diffusion-decimal')