问题标签 [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.
python - 项目的管道不可 JSON 序列化
我正在尝试将抓取的 xml 的输出写入 json。由于项目不可序列化,抓取失败。
从这个问题建议您需要构建一个管道,答案未提供超出问题SO scrapy 序列化程序的范围
所以参考scrapy docs 它说明了一个例子,但是文档建议不要使用它
JsonWriterPipeline 的目的只是介绍如何编写项目管道。如果您真的想将所有抓取的项目存储到 JSON 文件中,您应该使用 Feed 导出。
如果我去饲料出口,这会显示
JSON
FEED_FORMAT: json Exporter used: JsonItemExporter 如果您将 JSON 用于大型提要,请查看此警告。
我的问题仍然存在,因为据我所知是从命令行执行。
但是,这会产生我打算使用管道解决的错误。
如何创建 json 管道来纠正 json 序列化错误?
这是我的代码。
python - 404:有什么办法可以避免在使用scrapy抓取的时候被网站屏蔽
我试图使用 Scrapy 来抓取一些网站上大约 70k 个项目。但是每次抓取大约 200 个项目后,其余的都会弹出错误:
我相信这是因为我的蜘蛛被网站阻止了,我尝试使用这里建议的随机用户代理,但它根本没有解决问题。有什么好的建议吗?
postgresql - Twisted (Scrapy) 和 Postgres
我使用 Scrapy(又名 Twisted)和 Postgres 作为数据库。
在我的连接似乎填满之后,我的脚本被卡住了。我用这个查询检查了这个,SELECT * FROM pg_stat_activity;
并读到它是因为 Postgres 没有连接池而引起的。
我读到了txpostgres和PGBouncer,遗憾的是 Bouncer 不是一个选项,我还能做些什么来避免这个问题?
到目前为止,我使用以下管道:
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)
只能执行其他常规操作,如关闭连接、释放资源等
python-2.7 - 通过scrapy图像管道下载的放大图像大小
我正在尝试从继承的 ImagesPipeline 类覆盖我的 pipeline.py 中的 convert_image 方法,但它没有按预期工作。
实际上,我只是想将下载的图像放大到我的要求:700px,但下载的图像仍然是原始大小,而且我在scrapy之外测试了调整大小的功能,效果很好
对于我没有在我的设置 IMAGES_THUMBS 中使用的信息,所以大小应该是 None 和 IMAGES_EXPIRES = 0
如果有人有一个很好的解决方案,可以在不满足此要求时将下载的图像直接转换为 700x700 最小转换。
这是我的代码:
这是我试图覆盖的原始管道图像类: github
python - 在同一页面上获取两张图片然后以不同方式命名它们的 Scrapy 蜘蛛
我是 Python 和 Scrapy 的新手,所以我不确定我是否选择了最好的方法;但我的目标是在一个页面上获得两张(或更多)不同的图片,并以不同的方式命名图片。
我应该如何设置管道,我应该做一个组合管道还是分开管道?现在我尝试了分离的管道,但无法使其工作。第一张图片完美下载并重命名,但第二张完全没有下载(下面的错误消息)。
我在这个页面练习:http ://www.allabolag.se/2321000016/STOCKHOLMS_LANS_LANDSTING
allabolagspider.py
设置.py
管道.py
从终端复制粘贴
parse-platform - Post Scrapy 返回结果到 Parse
我做了一个管道
解析 = 'api.parse.com' 端口 = 443
但是,我找不到在 Parse 中发布数据的正确方法。因为每次它在我的 Parse DB 中创建未定义的对象。
错误示例:
python - 用于解析的 Scrapy 管道
我制作了一个管道将scrapy数据放入我的 Parse Backend
解析 = 'api.parse.com' 端口 = 443
但是,我找不到在 Parse 中发布数据的正确方法。因为每次它在我的 Parse DB 中创建未定义的对象。
错误示例:
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
scrapy - scrapyd 多个蜘蛛将项目写入同一个文件
我有多个蜘蛛同时运行的scrapyd服务器,我使用 schedule.json 端点一一启动蜘蛛。所有蜘蛛都使用管道在公共文件上写入内容
蜘蛛运行后,我可以看到它们如何正确收集数据,项目存储在 XXXX.jl 文件中,并且蜘蛛正常工作,但是爬取的内容没有反映在公共文件上。Spiders 似乎运行良好,但管道并没有很好地完成它们的工作,并且没有将数据收集到公共文件中。
我还注意到只有一只蜘蛛同时在文件上写。