问题标签 [scrapy-splash]

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 回答
2823 浏览

scrapy - 在 Splash 和 Scrapy 中自动向下滚动页面

我正在抓取一个对产品图像使用延迟加载的网站。

出于这个原因,我包括在内scrapy-splash,以便也可以使用 splash 呈现 javascript 我可以提供一个wait参数。以前我有一个虽然这是因为原始scrapy.Request返回占位符图像而不是原件的时间。

我也尝试过等待 29.0 秒的参数,但我的爬虫仍然几乎没有得到 10 个项目(根据计算它应该带来 280 个项目)。我有一个项目管道,它检查项目中的图像是否为空,所以 i raise DropItem

我不确定,但我也注意到这不仅仅是wait问题。当我向下滚动时,看起来图像被加载了。

我正在寻找的是一种在我的请求中自动滚动到底部行为的方法。

这是我的代码 蜘蛛

管道

设置

0 投票
1 回答
1690 浏览

python - 如何从另一个启动 Scrapy 蜘蛛

我在一个 Scrapy 项目中有两个蜘蛛。Spider1 抓取页面列表或整个网站并分析内容。Spider2 使用 Splash 在 google 上获取 URL 并将该列表传递给 Spider1。

所以,Spider1抓取并分析内容,无需被Spider2调用即可使用

Spider2的代码

运行 Spider2 时出现此错误:twisted.internet.error.ReactorAlreadyRunning并且在没有 URL 列表的情况下调用 Spider1。我尝试按照 Scrapy 文档的建议使用 CrawlRunner,但这是同样的问题。我尝试在 parse 方法中使用 CrawlProcess,它“有效”,但是我仍然有错误消息。在 parse 方法中使用 CrawlRunner 时,它不起作用。

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 投票
1 回答
1366 浏览

python - Scrapy Splash - 保持登录状态

我设法使用scrapy+splash 连接到一个网站(感谢这个线程)。

我知道我已登录,因为我可以显示一些您登录后可用的元素。但是,当我尝试使用另一个页面访问另一个页面时SplashRequest,网站会要求再次登录。

所以看起来scrapy(或splash)并没有保持会话活跃。为了保持登录状态并保持会话处于活动状态,是否需要启用某些功能?

谢谢,

0 投票
0 回答
418 浏览

scrapy - 如何将scrapy的头信息直接传递给splash

我想根据通过scrapy登录认证获得的头信息在splash上​​登录。

我对此有两个问题。

问题1。

是否可以直接将scrpay登录得到的header信息传递给splash?

问题2。

使用 splash 识别不需要执行登录身份验证是否有意义?

这是我的基本代码。

感谢您阅读我的问题。

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 回答
1178 浏览

scrapy - Scrapy + Splash(Docker)问题

我在 AWS Ubuntu 服务器上设置了 scrapy 和 scrapy-splash。它可以正常工作一段时间,但几个小时后我会开始收到这样的错误消息;

我会发现 docker 中的启动过程要么已终止,要么没有响应。

我一直在运行启动过程;

根据scrapy-splash指令。

我尝试在 tmux shell 中启动该进程以确保 ssh 连接不会干扰 splah 进程,但没有运气。

想法?

0 投票
1 回答
938 浏览

python - 如果返回列表,如何从启动中检索?

按照此处初始源中提供的示例:https ://github.com/scrapinghub/splash/blob/master/splash/examples/render-multiple.lua

在那个 lua 脚本中,返回的是一个 lua 表而不是一个 json 对象。

使用scrapy-splash时,如何使用lua脚本返回和检索数组/列表而不是表/字典?

0 投票
1 回答
1047 浏览

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

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

这是我的蜘蛛:

DisqusItem定义如下:

结果如下:

这是文件settings.py

0 投票
0 回答
402 浏览

web-crawler - 如何将 LinkExtractor 与 SplashRequest 一起使用?

如何做 LinkExtractor 使用 SplashRequest 发送请求。
我运行此代码但仅将请求发送到主页,主页的链接没有被提取。

代码:

编辑有
什么意见吗?