只能爬取文字,不能下载文件 | 执行顺序问题

来源:5-1 session和cookie自动登录机制

慕粉3883702

2022-05-11

bobby老师,您好。

需求是这样的:
一个小众游戏录像网站,想要爬取一些【对局信息简介】(就在页面上显示着)和【对局录像文件】(需点击下载)。

遇到的问题:
当我测试的时候,只给scrapy提交一条url,可以下载简介和录像。
但是,当我提交给scrapy一个url列表,则只能爬取简介,以及最后一个url的录像。

我试着分析了一下原因:
response只保留了一些"死"的信息,但是并没有维持和网页的会话?因此scrapy可以解析出response中的信息,却无法通过response发起下载请求?

那么,bobby老师有什么解决的思路吗?

有什么办法让scrapy一次只发送一条url,处理完爬取网页和下载文件的两个任务之后,再发送下一条url?(而不是像现在这样保存很多死的response)

还是说,下载录像的时候必须要再重新发起一次请求?需要再专门写一个下载录像的parse函数吗?

写回答

1回答

bobby

2022-05-12

scrapy本身是一个异步框架, 你这个需求是一个同步抓取需求, 和scrapy本身的底层框架冲突,下载文件和下载视频都是异步的,无法把两者统一起来,要想完成这个功能需要读一下底层的download源码或者自己写这一部分逻辑

0
2
bobby
回复
慕粉3883702
这个思路不错,还有个思路是将这些放入redis或者kafka然后另一个爬取读取kafka的数据然后爬取后修改记录
2022-05-14
共2条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5795 学习 · 6290 问题

查看课程