问题标签 [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.
python - 带有 Scrapy-Splash 的代理服务器
我正在尝试让代理服务器在我的本地启动实例上工作。我已经阅读了几份文件,但没有找到任何可行的例子。我注意到这个https://github.com/scrapy-plugins/scrapy-splash/issues/107是原因。我不再获得该回溯,但仍然无法将 Splash 与代理一起使用。下面的新错误消息。如果有人可以帮助我解决这个问题,请提前感谢。我的任何请求都没有通过 Splash。
javascript - 如何使用 Scrapy 和 Splash 抓取基于 AJAX 的网站?
我想制作一个通用刮板,它可以从任何类型的网站(包括 AJAX 网站)中抓取和刮取所有数据。我在互联网上进行了广泛搜索,但找不到任何合适的链接来解释我如何 Scrapy 和 Splash 一起抓取 AJAX 网站(包括分页、表单数据和在显示页面之前单击按钮)。我提到的每个链接都告诉我可以使用 Splash 呈现 Javascript 网站,但是没有关于使用 Splash 呈现 JS 网站的好的教程/解释。请不要给我与使用浏览器相关的解决方案(我想以编程方式做所有事情,欢迎无头浏览器建议......但我想使用 Splash)。
python - 如何在scrapy-splash中设置飞溅超时?
我使用scrapy-splash来抓取网页,并在docker 上运行splash 服务。
常见的:
但是我收到了 504 错误。
尽管我尝试添加splash.resource_timeout
, request:set_timeout
or SPLASH_URL = 'http://localhost:8050?timeout=1800.0'
,但没有任何改变。
感谢帮助。
javascript - 在 Scrapy 响应中执行内联 JavaScript
我正在尝试使用 Scrapy 登录网站,但收到的响应是一个仅包含内联 JavaScript 的 HTML 文档。JS 重定向到我要从中抓取数据的页面。但是 Scrapy 不会执行 JS,因此不会路由到我想要的页面。
我使用以下代码提交所需的登录表单:
print_p 回调函数如下:
我看过scrapy-splash,但我找不到在scrapy-splash的响应中执行JS的方法。
lua - 如何捕捉 splash:on_response 重试错误和项目?
我正在使用 scrapy、splash 和 scrapy_splash 来抓取目录网站。
该网站使用表单 POST 打开一个新的项目详细信息页面。
有时,项目详细信息页面会在 Splash 中显示默认错误页面(与 HTTP 状态无关),但是如果我再次重新发布表单,则返回项目详细信息。我仍在调查响应的根本原因。这似乎更像是一个时间问题,而不是 n 个请求后的特定检查。
作为一种解决方法,我使用 splash:on_response 方法在收到错误页面时重试表单发布。
我希望能够记录失败的尝试以供以后手动处理。是否有收集这些信息的最佳实践或标准方法?
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
splash-screen - Splash 不会呈现页面的所有内容
我正在使用Splash v2.3.2,我正在尝试渲染一个页面,但它并没有渲染所有内容。它不会渲染图像或动态加载的内容。
我将我的http://localhost:8050/与脚本一起使用:
我试图改变等待时间,也试图允许插件。这些都不行。我假设动态加载的内容受到限制,但我不确定。任何帮助表示赞赏。
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”,我可以看到容器正在运行:
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 错误(同样是无效的主机名,但这次呈现方式不同)。
知道我做错了什么吗?
python - Scrapy Splash 总是返回相同的页面
对于几个 Disqus 用户中的每一个,他们的个人资料 url 都是预先知道的,我想抓取他们的名字和关注者的用户名。我正在使用scrapy
并splash
这样做。但是,当我解析响应时,它似乎总是在抓取第一个用户的页面。我尝试设置wait
to10
和dont_filter
to True
,但它不起作用。我现在该怎么办?
这是我的蜘蛛:
DisqusItem
定义如下:
结果如下:
这是文件settings.py
: