scrapy爬虫实战笔记(三)

#piplines实现异步抓取图片##post请求#

1.scrapy图片类抓取

1.1导入下载图片专用管道类

打开scrapy项目中piplines文件,导入模块ImagesPipeline

该模块需安装模块 pip install pillow==9.4.0(下载9.4.0版本)

1.2管道类需继承ImagesPipeline

且不再使用原process_item函数,而是使用get_midia_requests(),这个方法专门获取媒体的请求

1.3用下载器下载图片

这一步请求下载器下载图片,我们把链接放进去即可

1.4file_path设置图片的名字和保存地址

名称可直接在file_path下定义,文件夹地址需在settings中添加

1.5爬虫代码:获取并解析网页数据

另,settings文件设置同scrapy实战笔记(二)——日志文件等级,君子协议,user-agent

2.scrapy抓取动态请求(eg.百度翻译)

post请求需额外提交表单

2.1添加start_requests

post请求时,start_urls基本不用,里面填写的内容不重要,我们需额外添加start_requests(),该方法意为从这里开始执行

scrapy.FormRequest()提交表单并发起请求

2.2添加伪装

响应的数据是无法解析的,我们需要添加伪装。post请求单独添加一个USER-AGENT不行,这里settings中的USER-AGENT可以不用了,USER-AGENT是对全局的请求做修改。这里,我们要把全部的(请求标头)Headers信息加进来。

2.2.1头部信息处理技巧(自己试了下,没有成功,不知道什么原因)

(1)Pycharm中建立一个text文件,把headers信息copy进去

(2)ctrl+R,用正则做一个匹配 (.*?): (.*)

文本中有空格,故冒号后面有空格。若所有信息被框起来,则说明全部信息都被匹配到了

(3)替换 ‘$1':'$2',

(4)点击REPLACEALL

2.2.2添加请求标头信息

settings中修改

2.2.3为使上述添加的cookies生效,我们需关闭scrapy本身封装的cookie

settings中修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值