问题标签 [scrapy-pipeline]

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

python - 项目的管道不可 JSON 序列化

我正在尝试将抓取的 xml 的输出写入 json。由于项目不可序列化,抓取失败。

从这个问题建议您需要构建一个管道,答案未提供超出问题SO scrapy 序列化程序的范围

所以参考scrapy docs 它说明了一个例子,但是文档建议不要使用它

JsonWriterPipeline 的目的只是介绍如何编写项目管道。如果您真的想将所有抓取的项目存储到 JSON 文件中,您应该使用 Feed 导出。

如果我去饲料出口,这会显示

JSON

FEED_FORMAT: json Exporter used: JsonItemExporter 如果您将 JSON 用于大型提要,请查看此警告。

我的问题仍然存在,因为据我所知是从命令行执行。

但是,这会产生我打算使用管道解决的错误。

如何创建 json 管道来纠正 json 序列化错误?

这是我的代码。

0 投票
2 回答
1045 浏览

python - 404:有什么办法可以避免在使用scrapy抓取的时候被网站屏蔽

我试图使用 Scrapy 来抓取一些网站上大约 70k 个项目。但是每次抓取大约 200 个项目后,其余的都会弹出错误:

我相信这是因为我的蜘蛛被网站阻止了,我尝试使用这里建议的随机用户代理,但它根本没有解决问题。有什么好的建议吗?

0 投票
0 回答
1284 浏览

postgresql - Twisted (Scrapy) 和 Postgres

我使用 Scrapy(又名 Twisted)和 Postgres 作为数据库。

在我的连接似乎填满之后,我的脚本被卡住了。我用这个查询检查了这个,SELECT * FROM pg_stat_activity;并读到它是因为 Postgres 没有连接池而引起的。

我读到了txpostgresPGBouncer,遗憾的是 Bouncer 不是一个选项,我还能做些什么来避免这个问题?

到目前为止,我使用以下管道

0 投票
0 回答
348 浏览

python - Scrapy - 当爬虫完成时调用一个新的爬取进程

我搜索从两个 start_urls xxx.com/LISTA 和 xxx/com/LISTB 中找到的 url - xxx.com/a、xxx.com/b 等

一旦这个爬虫完成后,我还想另外爬取页面 xxx.com/x_in_database 和 xxx.com/y_in_database - 它们的 URL 已经在数据库中的先前爬取中被爬取过(因此现在可用),但前提是当前爬虫没有已经在 LISTA 和 LISTB 中找到它们

最好的方法是什么?似乎我无法开始新的爬网,scrapy.signals.spider_closed(spider, reason)只能执行其他常规操作,如关闭连接、释放资源等

0 投票
1 回答
472 浏览

python-2.7 - 通过scrapy图像管道下载的放大图像大小

我正在尝试从继承的 ImagesPipeline 类覆盖我的 pipeline.py 中的 convert_image 方法,但它没有按预期工作。

实际上,我只是想将下载的图像放大到我的要求:700px,但下载的图像仍然是原始大小,而且我在scrapy之外测试了调整大小的功能,效果很好

对于我没有在我的设置 IMAGES_THUMBS 中使用的信息,所以大小应该是 None 和 IMAGES_EXPIRES = 0

如果有人有一个很好的解决方案,可以在不满足此要求时将下载的图像直接转换为 700x700 最小转换。

这是我的代码:

这是我试图覆盖的原始管道图像类: github

0 投票
1 回答
442 浏览

python - 在同一页面上获取两张图片然后以不同方式命名它们的 Scrapy 蜘蛛

我是 Python 和 Scrapy 的新手,所以我不确定我是否选择了最好的方法;但我的目标是在一个页面上获得两张(或更多)不同的图片,并以不同的方式命名图片。

我应该如何设置管道,我应该做一个组合管道还是分开管道?现在我尝试了分离的管道,但无法使其工作。第一张图片完美下载并重命名,但第二张完全没有下载(下面的错误消息)。

我在这个页面练习:http ://www.allabolag.se/2321000016/STOCKHOLMS_LANS_LANDSTING

allabolagspider.py

设置.py

管道.py

从终端复制粘贴

0 投票
2 回答
75 浏览

parse-platform - Post Scrapy 返回结果到 Parse

我做了一个管道

解析 = 'api.parse.com' 端口 = 443

但是,我找不到在 Parse 中发布数据的正确方法。因为每次它在我的 Parse DB 中创建未定义的对象。

错误示例:

0 投票
2 回答
523 浏览

python - 用于解析的 Scrapy 管道

我制作了一个管道将scrapy数据放入我的 Parse Backend

解析 = 'api.parse.com' 端口 = 443

但是,我找不到在 Parse 中发布数据的正确方法。因为每次它在我的 Parse DB 中创建未定义的对象。

错误示例:

0 投票
1 回答
842 浏览

python - 如何从redis而不是通过url cPikle转换得到一个正常的url?

我用scrapy-redis简单搭建了一个分布式爬虫,从机需要从主队列url中读取url,但是有个问题是我拿到url从机是cPikle转换数据后,我想从redis- url-queue 是正确的,你有什么建议?

例子:

MySpider 继承了 RedisSpider,当我运行scrapy runspider myspider_redis.py时,它会出现不合法的 url

scrapy-redis github地址:scrapy-redis

0 投票
1 回答
1596 浏览

scrapy - scrapyd 多个蜘蛛将项目写入同一个文件

我有多个蜘蛛同时运行的scrapyd服务器,我使用 schedule.json 端点一一启动蜘蛛。所有蜘蛛都使用管道在公共文件上写入内容

蜘蛛运行后,我可以看到它们如何正确收集数据,项目存储在 XXXX.jl 文件中,并且蜘蛛正常工作,但是爬取的内容没有反映在公共文件上。Spiders 似乎运行良好,但管道并没有很好地完成它们的工作,并且没有将数据收集到公共文件中。

我还注意到只有一只蜘蛛同时在文件上写。