首页 文章

对scrapy和Xpath感到困惑

提问于
浏览
0

我试图从以下网站获取一些数据:https://xrpcharts.ripple.com/

我感兴趣的数据是“总XRP”,您可以在圆形图的下方或侧面(取决于您的浏览器)看到它 . 所以我第一次做的是检查我感兴趣的元素 . 所以我看到它在div class =“stat”里面的内部ng-bind =“totalXRP | number:2”class =“ng-binding”> 99,993,056,930.18

我感兴趣的是99,993,056,930.18 .

所以我开始使用scrapy shell并写道:

fetch("https://xrpcharts.ripple.com")

然后我使用chrome通过右键单击HTML代码的位置来复制Xpath,结果chrome给了我:

/html/body/div[5]/div[3]/div/div/div[2]/div[3]/ul/li[1]/div/span

然后我使用Xpath命令提取文本:

response.xpath( '/ HTML /体/格[5] / DIV [3] / DIV / DIV / DIV [2] / DIV [3] / UL /锂[1] / DIV /量程/文本()') . 提取()

但这给了我一个空列表[] . 我真的不明白我在这里做错了什么 . 我想我犯了一个明显的错误,但我没有看到它 . 提前致谢!

1 回答

  • 3

    底线是:您不能指望您在浏览器中看到的页面与Scrapy下载并可以使用的页面相同 . Scrapy不是浏览器 .

    这个页面非常动态和复杂,并且在多个异步请求的帮助下构建,同时引入逻辑和数据 . 浏览器中还执行了JavaScript,它在形成和支持HTML文档对象树中起着重要作用 .

    Scrapy没有所有这些东西,你做的事情 fetch() 只是第一个没有"dynamic content"的初始"bare bones" HTML页面 .

相关问题