python - 使用 Python 进行 Web Scraping - 获取属性值的问题
问题描述
我对 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>
这是据我所知,但结果中不包含我需要的内容。非常感谢任何建议
解决方案
也许这些属性是在 javascript 中动态设置的。要知道这一点,请不要使用控制台,而是右键单击页面,然后单击“查看页面源代码”。
如果你在源代码中找不到这些属性,它们是用 javascript 设置的,你需要一个像Selenium这样的工具来执行页面的动态部分。
解决方法:使用浏览器控制台的“网络”选项卡,您可以尝试查看是否执行了 ajax 请求以获取属性中的数据。您可以调用相同的请求,而不是解析您的页面,并可能以 json 格式获取信息。
推荐阅读
- r - 删除 R 环境中的选定变量
- swift - 关于 Swift 静态覆盖是最终的循环警告
- curl - 如何从 Win10 批处理文件或命令行运行此 Curl 脚本?
- android - 如何更改 ListView 项目的字体大小?
- c# - 如何在 Visual Studio Code 中禁用错误警告?
- php - Laravel:如何创建一个将 POST 请求并将用户保存在数据库中的控制器?
- notepad++ - 如何在记事本++中提取一组单词和一个符号之间的文本
- atg - Endeca N 值更新为更易于阅读
- eclipse - 在 JEE 项目中创建 WebService 时未生成 wsdl 文件
- python - json 变成双引号字符串 - python django