问题标签 [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 回答
2315 浏览

python - 带有 Scrapy-Splash 的代理服务器

我正在尝试让代理服务器在我的本地启动实例上工作。我已经阅读了几份文件,但没有找到任何可行的例子。我注意到这个https://github.com/scrapy-plugins/scrapy-splash/issues/107是原因。我不再获得该回溯,但仍然无法将 Splash 与代理一起使用。下面的新错误消息。如果有人可以帮助我解决这个问题,请提前感谢。我的任何请求都没有通过 Splash。

0 投票
3 回答
2650 浏览

javascript - 如何使用 Scrapy 和 Splash 抓取基于 AJAX 的网站?

我想制作一个通用刮板,它可以从任何类型的网站(包括 AJAX 网站)中抓取和刮取所有数据。我在互联网上进行了广泛搜索,但找不到任何合适的链接来解释我如何 Scrapy 和 Splash 一起抓取 AJAX 网站(包括分页、表单数据和在显示页面之前单击按钮)。我提到的每个链接都告诉我可以使用 Splash 呈现 Javascript 网站,但是没有关于使用 Splash 呈现 JS 网站的好的教程/解释。请不要给我与使用浏览器相关的解决方案(我想以编程方式做所有事情,欢迎无头浏览器建议......但我想使用 Splash)。

0 投票
1 回答
5148 浏览

python - 如何在scrapy-splash中设置飞溅超时?

我使用scrapy-splash来抓取网页,并在docker 上运行splash 服务。

常见的:

但是我收到了 504 错误。

尽管我尝试添加splash.resource_timeout, request:set_timeoutor SPLASH_URL = 'http://localhost:8050?timeout=1800.0',但没有任何改变。

感谢帮助。

0 投票
2 回答
2845 浏览

javascript - 在 Scrapy 响应中执行内联 JavaScript

我正在尝试使用 Scrapy 登录网站,但收到的响应是一个仅包含内联 JavaScript 的 HTML 文档。JS 重定向到我要从中抓取数据的页面。但是 Scrapy 不会执行 JS,因此不会路由到我想要的页面。

我使用以下代码提交所需的登录表单:

print_p 回调函数如下:

我看过scrapy-splash,但我找不到在scrapy-splash的响应中执行JS的方法。

0 投票
0 回答
581 浏览

lua - 如何捕捉 splash:on_response 重试错误和项目?

我正在使用 scrapy、splash 和 scrapy_splash 来抓取目录网站。

该网站使用表单 POST 打开一个新的项目详细信息页面。

有时,项目详细信息页面会在 Splash 中显示默认错误页面(与 HTTP 状态无关),但是如果我再次重新发布表单,则返回项目详细信息。我仍在调查响应的根本原因。这似乎更像是一个时间问题,而不是 n 个请求后的特定检查。

作为一种解决方法,我使用 splash:on_response 方法在收到错误页面时重试表单发布。

我希望能够记录失败的尝试以供以后手动处理。是否有收集这些信息的最佳实践或标准方法?

0 投票
2 回答
3227 浏览

scrapy - Scrapy + Splash = 拒绝连接

我使用此链接安装了Splash。按照所有步骤安装,但 Splash 不起作用。

我的settings.py文件:

当我运行时scrapy crawl TestSpider

这是我的蜘蛛

我试图在终端中运行它:curl http://localhost:8050/render.html?url=http://www.google.com/"

输出:

curl: (7) 无法连接到 localhost 端口 8050: Connection Refused

0 投票
2 回答
2204 浏览

splash-screen - Splash 不会呈现页面的所有内容

我正在使用Splash v2.3.2,我正在尝试渲染一个页面,但它并没有渲染所有内容。它不会渲染图像或动态加载的内容。

我将我的http://localhost:8050/与脚本一起使用:

这是一个浏览器渲染: 浏览器渲染

这是 Splash 渲染的屏幕截图: 飞溅渲染

我试图改变等待时间,也试图允许插件。这些都不行。我假设动态加载的内容受到限制,但我不确定。任何帮助表示赞赏。

0 投票
2 回答
717 浏览

docker - 带有 Docker 的 Splash 服务器未在 Mac 上运行

我正在尝试使用 Docker 配置 Splash 服务器,以便为 scrapy 呈现 javascript。

我下载并安装了 Docker Toolbox(由于缺乏 CPU MMU 支持,最新版本的 Docker 没有安装在我的 Macbook pro 2009 上)。

我在 Docker 快速启动终端中运行了“docker run -p 5023:5023 -p 8050:8050 -p 8051:8051 scrapinghub/splash”。该命令执行但在“启动工厂...”之后我无法恢复我的 shell 提示符。

我尝试在浏览器中访问http://localhost:8050/并 ping localhost:8050 但这不起作用:“无法访问此站点”。我将不胜感激任何帮助以了解问题所在。谢谢!

如果我重新启动 docker 并运行“docker ps”,我可以看到容器正在运行:

0 投票
2 回答
1669 浏览

lua - 尝试 Scrapy + Splash

所以我在玩 Scrapy & Splash 并且遇到了一些问题。我尝试运行我的蜘蛛,并不断收到 HTTP 502 和 504 错误。好的,所以我尝试在浏览器中查看 Splash。首先我执行“sudo docker run -p 8050:8050 -p 5023:5023 scrapinghub/splash --max-timeout 3600 -v3”来启动 Splash 运行,然后我去了 localhost:8050。Web UI 可以正常打开,我可以输入代码。这是我要运行的基本功能:

我尝试使用此函数渲染http://boingboing.net/blog,并得到一个“无效主机名”LUA 错误;这是日志:

如果我在先加载 JQuery 的情况下尝试它,我会收到一个“network5”LUA 错误(这是某种超时)。日志如下:

如果我另外注释掉 resource_timeout 行,我会收到 network3 LUA 错误(同样是无效的主机名,但这次呈现方式不同)。

知道我做错了什么吗?

0 投票
1 回答
1047 浏览

python - Scrapy Splash 总是返回相同的页面

对于几个 Disqus 用户中的每一个,他们的个人资料 url 都是预先知道的,我想抓取他们的名字和关注者的用户名。我正在使用scrapysplash这样做。但是,当我解析响应时,它似乎总是在抓取第一个用户的页面。我尝试设置waitto10dont_filterto True,但它不起作用。我现在该怎么办?

这是我的蜘蛛:

DisqusItem定义如下:

结果如下:

这是文件settings.py