【问题标题】:Scrape dynamic rendering data with click button使用点击按钮抓取动态渲染数据
【发布时间】:2020-08-22 18:13:54
【问题描述】:

我有很多不同的抓取工具,但它们都在处理服务器渲染页面或解析来自 API 端点的响应。

但现在我有两个非常具体的网站要抓取:

首先。

单页,我们应该点击 seach 按钮来获取前 10 个项目。要获得接下来的 10 个项目 - 单击“下一步”按钮。 2-3 秒后,搜索部分中的数据将重新呈现。单击“下一步”时,我会从 vaadin 服务中获取未解析的虚拟数据。因此只能从呈现的 HTML 页面中解析数据。

第二个。

同一个页面,原理相同(点击搜索按钮获取初始化数据,点击下一步按钮加载新数据)。但另外我需要点击每个项目来获取所有数据来抓取(点击每个搜索结果项后,我从渲染的搜索结果+模式窗口中抓取一些数据)

问题 - 是否可以用 scrapy 和 splash 抓取此类网站?我知道硒,但它又重又慢,我需要其他解决方案。从来没有使用过飞溅,但如果我没记错的话,可以通过 lua 脚本模仿点击。..

【问题讨论】:

    标签: web-scraping scrapy scrapy-splash


    【解决方案1】:

    我建议避免使用 Splash,而是使用 reproducing the underlying requests

    我在这里看到的使用 Splash 路线的主要问题是,如果没有 URL 可用于从 Web 浏览器访问除第一页以外的页面,并且由于 Splash 不支持 (AFAIK) 恢复在之前的渲染中,您需要 Splash 让每个对 Splash 的请求都运行一个 Lua 脚本,该脚本单击 Next,等待并重复 N 页。

    如果由于某种原因无法重现请求,则使用交互式无头浏览器(Selenium、Puppeteer)而不是渲染服务(Splash)可能会更好。

    【讨论】:

    • 我也建议这个网站使用 Puppeteer,即使它没有最好的性能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    相关资源
    最近更新 更多