使用 Scrapy 提取网站上显示的实时数据

Using Scrapy to extract live data that shows on the website

使用像 https://www.interpol.int/How-we-work/Notices/View-Red-Notices 这样的网站,我正在使用 scrapy shell,我想提取流通中的 public 红色通告的总数,在浏览器上显示 7596。当我在 scrapy shell:

上使用这个命令
response.css('strong#totalResults::text').get()

它 returns 结果为 0。这就是 HTML 上显示的结果。我不明白为什么会返回这个数字,我该怎么做才能获得实际数字?

网站动态加载值并将其放置在带有 Javascript 的元素中。快速查看网站的源代码告诉我们它从这个 url:

加载它
https://ws-public.interpol.int/notices/v1/red

从技术上讲,您可以向它发出一个 http 请求,然后自己用 python 解析 JSON 结果。但是:许多 websites/organizations 不喜欢您抓取他们的网站或对他们的 API 进行逆向工程,因此请在执行此操作时注意。 (不要向它发送垃圾邮件或每秒请求数据等)。

许多网站实际上都有 public API 来完成您想要做的事情。我相信我听说国际刑警组织也有一个。 (但我会把它留给你:p)。