对scrapy和Xpath感到困惑

对scrapy和Xpath感到困惑,xpath,scrapy,Xpath,Scrapy,我试图从以下网站上搜集一些数据: 我感兴趣的数据是Total XRP,您可以在圆图的正下方或侧面(取决于浏览器)看到它。所以我首先做的是检查我感兴趣的元素。所以我看到它在9993056930.18中 这个号码是我感兴趣的 所以我从一个脏兮兮的壳开始写: fetch("https://xrpcharts.ripple.com") 然后,我使用chrome通过右键单击HTML代码的位置来复制Xpath,chrome给我的结果是: /html/body/div[5]/div[3]/div/div/d

我试图从以下网站上搜集一些数据:

我感兴趣的数据是
Total XRP
,您可以在圆图的正下方或侧面(取决于浏览器)看到它。所以我首先做的是检查我感兴趣的元素。所以我看到它在
9993056930.18

这个号码是我感兴趣的

所以我从一个脏兮兮的壳开始写:

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/body/div[5]/div[3]/div/div/div[2]/div[3]/ul/li[1]/div/span/text()).extract()

但这给了我一个空列表[]。我真的不明白我在这里做错了什么。我想我犯了一个明显的错误,但我看不出来。提前谢谢

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

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

Scrapy没有所有这些功能,当您执行
fetch()
时,您得到的只是第一个没有所有“动态内容”的初始“基本”HTML页面。

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

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


Scrapy没有所有这些功能,当您执行
fetch()
时,您得到的只是第一个没有所有“动态内容”的初始“基本”HTML页面。

要扩展您的响应,您可以使用在网站上呈现javascript,并在Scrapy中获得类似的结果。要扩展您的响应,您可以使用在网站上呈现javascript,并在scrapy中获得类似的结果。