问题标签 [splash-js-render]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1256 浏览

javascript - scrapy-splash 渲染多于第一页

我正在尝试抓取一个网站,但需要在所有页面中使用 splash,因为它们的内容是动态创建的。现在它只呈现第一页,而不是内容页面或分页页面。

这是代码:

我已经以我能想到的各种方式玩了它,但它没有用。我现在能想到的唯一解决方案是使用渲染 API 将链接发送到内容页面和分页,但我认为这是非常糟糕的编码,必须有另一种方式。

谢谢你的帮助。

0 投票
0 回答
734 浏览

scrapy - scrapy 和 splash 存在内容安全策略问题

我正在做的是

  1. 谷歌一些linkedin特定链接
  2. 登录linkedin.com(成功)
  3. 重新访问主页(此处失败)
  4. 从我在第一步中搜索的链接中提取一些所需的信息

我的 scrapy 机器人在第 3 步失败了。所以我的问题是,有没有办法绕过这个内容安全策略?如果是,请详细分享您的想法,谢谢。

谷歌指出我指出的相关问题之一是 CSP 标头Eval Issue,因为它没有提供有关代理设置的任何详细信息,所以没有帮助。

2017-12-29 10:59:47 [scrapy_splash.middleware] 警告:对 Splash 的错误请求:{u'info': {u'source': u'[string "..."]', u'message' : u'Lua error: [string "..."]:32: JavaScript error: EvalError: Refused to evaluate a string as JavaScript because \'unsafe-eval\' is not a allowed source of script in the following Content Security Policy指令:“script-src \'report-sample\' \'sha256-[redacted...]=\' \'unsafe-inline\' static.licdn.com sclnkd.licdn.com static-fstl.licdn.com static-src.linkedin.com https://www.linkedin.com/voyager/service-worker-push.js https://platform.linkedin.com/js/analytics.js static-exp1.licdn.com static- exp2.licdn.com scexp1.licdn.com scexp2.licdn.com 静态-lcdn.licdn。com sclcdn.licdn.com https://www.linkedin.com/sc/ https://www.linkedin.com/scds/ https://qprod.www.linkedin.com/sc/ https://www.linkedin.com/sw.js https://www.linkedin.com/voyager /abp-detection.js ".\n', u'type': u'LUA_ERROR', u'line_number': 32, u'error': u'JavaScript error: EvalError: Refused to evaluate a string as JavaScript because \ 'unsafe-eval\' 不是以下内容安全策略指令中允许的脚本来源:“script-src \'report-sample\' \'sha256-[redacted...]=\' \'unsafe-inline \' static.licdn.com sclnkd.licdn.com static-fstl.licdn.com static-src.linkedin.com https://www.linkedin.com/voyager/service-worker-push.js https://platform .linkedin.com/js/analytics.jsstatic-exp1.licdn.com static-exp2.licdn.com scexp1.licdn.com scexp2.licdn.com static-lcdn.licdn.com sclcdn.licdn.com https://www.linkedin.com/sc/ https: //www.linkedin.com/scds/ https://qprod.www.linkedin.com/sc/ https://www.linkedin.com/sw.js https://www.linkedin.com/voyager/abp -detection.js ".'}, u'type': u'ScriptError', u'description': u'执行Lua脚本时发生错误', u'error': 400} 2017-12-29 10:59: 47 [scrapy.core.engine] DEBUG:通过 http://localhost:8050/execute > (referer: None) 2017-12-29 10:59抓取 (400) https://www.linkedin.com/feed/ :47 [scrapy.spidermiddlewares.httperror] 信息:忽略响应 <400 https://www.linkedin.com/feed/>: HTTP 状态码未处理或不允许

0 投票
2 回答
882 浏览

python-3.x - 飞溅问题(d-bus、QSslSocket、libpng)

我正在尝试通过scrapinghub/splashDocker 映像使用 Splash,并在第一个请求之后发出一些警报(这是到/robots.txt端点,因为我正在使用库scrapy-splash插件scrapy(使用 Python 3.6)。

最可悲的是它没有渲染这个页面。还需要提到的是,有时它会呈现这个页面,并且它包含重定向以防 JS 可用。

如何让它发挥作用?

更新

仍然使用scrapinghub/splash:3.0这些消息时,但渲染工作。那么我应该将其报告为scrapinghub/splash图像中的错误还是这些错误可能是由我的环境引起的?

更新

出于某种原因,甚至3.0从现在开始都不会渲染,以及master(docker image tag)。因此,对于每个带有latestormaster3.0标签的图像,在询问(索引端点上的表单)渲染http://floodlist.com/news页面之后,它只显示一个带有You are being redirected...标题的页面。

我发现了这个问题,所以d-bus问题可能是无害的。

0 投票
2 回答
834 浏览

web-scraping - 特定站点的 Scrapy 和 Splash 超时

我在尝试从该站点Scrapy获取响应时遇到Crawlera了问题。Splash

我没有运气就尝试了以下方法:

  • Scrapy外壳 - 超时
  • Scrapy+ Crawlera- 超时
  • ScrapinghubSplash实例(小) - 超时

但是我可以使用Selenium. 但我想摆脱它并Splash改用它。

是否有避免这些超时的解决方法?

笔记:

如果我使用由水族馆Splash设置的本地实例,则站点会加载,尽管与 Firefox webdriver 的 10 秒相比,它仍然需要 20 多秒。

0 投票
0 回答
776 浏览

python - Trivago 检测到 Scrapy Splash

当我使用 Splash 抓取 Trivago 时,我得到了验证码。如果我使用 curl 或使用普通的 Scrapy 请求,它不会发生。

有没有办法使用 Splash 但不会被 Trivago 检测为机器人?

0 投票
1 回答
291 浏览

python - Splash UI 无法在 Windows 上启动

我已经使用 Docker Toolbox 和 Docker Quickstart Terminal 在 docker 上设置了 splash。它给出了这个输出:

然后我按照飞溅指南的说明进行操作:

Splash UI 提供了一种尝试脚本的简单方法:有一个用于 Lua 的代码编辑器和一个提交脚本以执行的按钮。访问http://127.0.0.1:8050/(或 Splash 正在监听的任何主机/端口)。

但是我打不开地址。从日志:

由于格式奇怪,我无法识别记录时间。有人可以告诉不打开启动界面的问题出在哪里吗?

0 投票
1 回答
99 浏览

python - 在 Docker 中运行的 Splash UI 示例

我已经在使用 Docker 工具箱运行的 Windows 上大放异彩。

我在 Splash UI 中运行一个内置示例:

启动界面

这似乎是正确的,但是......它不起作用!

错误信息

对我来说似乎很奇怪。你知道为什么吗?

编辑:同样的事情 飞溅示例 2

输出

在此处输入图像描述

0 投票
0 回答
721 浏览

docker - 飞溅容器在 30 分钟后停止工作

我对水族馆和飞溅有一些问题。他们在开始后 30 分钟后停止工作。用于加载的页面数量为 50K-80K。我做了 cron 作业,每 10 分钟自动重启每个 Splash 容器,但它不起作用我该如何解决?

在此处输入图像描述 这是来自 HAProxy的屏幕截图和统计数据在此处输入图像描述 这是 Splash 配置

和 HAProxy

更新 1 这是重新启动的脚本

它应该可以工作,因为我在 Cronjob 文件中有日志:

0 投票
2 回答
7434 浏览

python - Scrapy Splash单击按钮不起作用

我正在尝试做的事情

在avito.ru(俄罗斯房地产网站)上,用户的电话是隐藏的,直到您点击它。我想用 Scrapy+Splash 收集手机。

示例网址:https ://www.avito.ru/moskva/kvartiry/2-k_kvartira_84_m_412_et._992361048

截图:手机被隐藏

单击按钮后,将显示弹出窗口并显示电话。

在此处输入图像描述

我正在使用带有以下 Lua 脚本的Splash执行API:

问题

未单击该按钮且未显示电话号码。这是一项微不足道的任务,我无法解释为什么它不起作用。

item-phone-button如果我们替换为 ,单击对于同一页面上的另一个字段可以正常工作js-show-stat。所以 Javascript通常可以工作,蓝色的“显示电话”按钮一定是特殊的。

我试过的

为了隔离问题,我创建了一个带有最小示例脚本的仓库和一个用于 Splash 的 docker-compose 文件: https ://github.com/alexanderlukanin13/splash-avito-phone

Javascript 代码是否有效,您可以在 Chrome 和 Firefox 中使用 Javascript 控制台进行验证

我已经用 Splash 版本 3.0、3.1、3.2 尝试过,结果是一样的。

更新

我也试过:

0 投票
1 回答
551 浏览

scrapy-splash - 如何使用 Splash 处理新标签打开?

我正在抓取具有非常烦人的链接(<a>HTML 标记)的网站 - 它会在单击时打开小弹出表单,并在提交后打开带有我需要的 URL 的新浏览器选项卡(并将焦点切换到它),并且将旧标签重定向到另一个页面。

成功提交弹出表单很容易,但我不知道如何获取这个新标签的 URL。

正如文档所说,Splash 只能使用一个选项卡,所以不可能做到这一点吗?