请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

bobby老师,您好。

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

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

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

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

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

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

正在回答 回答被采纳积分+3

1回答

bobby 2022-05-12 13:31:07

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

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉3883702 #1
    好的,谢谢bobby老师,那我先用scrapy抓取视频的简介和视频的链接。
    
    然后再另外在python里面手写一个下载视频的逻辑,两个爬虫分开,分两次跑。
    
    谢了。
    回复 有任何疑惑可以回复我~ 2022-05-12 14:36:05
  • bobby 回复 提问者 慕粉3883702 #2
    这个思路不错,还有个思路是将这些放入redis或者kafka然后另一个爬取读取kafka的数据然后爬取后修改记录
    回复 有任何疑惑可以回复我~ 2022-05-14 19:49:20
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信