小编Ste*_*eve的帖子

Scrapy-splash 不渲染来自某个反应驱动站点的动态内容

我很想知道是否有任何飞溅可以从此页面获取动态工作内容 - https://nreca.csod.com/ux/ats/careersite/4/home?c=nreca#/requisition/182

为了让 splash 接收 URL 片段,您必须使用 SplashRequest。为了让它处理 JS cookie,我不得不使用 lua 脚本。下面是我的环境、脚本和爬虫代码。

该网站似乎分 3 个“步骤”呈现:

  1. 带有脚本标签的基本上是空的 html
  2. 上面的脚本运行并生成站点页眉/页脚并检索另一个脚本
  3. #2 中的脚本运行并结合 JS 设置 cookie 检索动态内容(我想抓取的工作)

如果您对 URL 执行简单的 GET(即在邮递员中),您将只会看到第 1 步的内容。与飞溅我只得到第 2 步的结果(页眉/页脚)。我确实在 response.cookiejar 中看到了 JS cookie

我无法获得要呈现的动态作业内容(第 3 步)。

环境:

scrapy 1.3.3 scrapy-splash 0.72 设置

    script = """
        function main(splash)
          splash:init_cookies(splash.args.cookies)
          assert(splash:go{
            splash.args.url,
            headers=splash.args.headers,
            http_method=splash.args.http_method,
            body=splash.args.body,
            })
          assert(splash:wait(15))

          local entries = splash:history()
          local last_response = entries[#entries].response
          return {
            url = splash:url(),
            headers = last_response.headers,
            http_status = last_response.status, …
Run Code Online (Sandbox Code Playgroud)

python screen-scraping splash-screen scrapy reactjs

1
推荐指数
1
解决办法
2205
查看次数

标签 统计

python ×1

reactjs ×1

scrapy ×1

screen-scraping ×1

splash-screen ×1