Scrapy框架学习笔记(4)

携带cookie登录

在scrapy中,携带cookie需要重新定义一个start_requests方法。`

def start_requests(self):
	cookies = “ ”
	cookies = {i.split("=")[0]:i.split("=")[1] for i in cookies.split("; ")}
        yield scrapy.Request(
            self.start_urls[0],
            callback=self.parse,
            cookies= cookies
        )

cookie是一个字典的形式,把获取下来的分割成字典。
在这里插入图片描述
setting此项设置为False,不会对机器人协议进行请求,让他不遵守协议。

post请求登录

在scrapy中可以通过yield scrapy.FormRequest来进行表单的提交进行登录,也可以通过yield scrapy.FormRequest.from_response来进行一个模拟登录。在这里插入图片描述
它会自动寻找表单进行数据的提交,formdata就填写账号密码即可,键名需要自己去查看下提交的input的名字来确定。

请求头的设置

下载一个scrapy-fake-useragent的包,pip安装即可,然后去setting把下载中间件打开,然后写下以下的代码

	'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':None,# 关闭默认的方法
    'scrapy_fake_useragent.middleware.RandomUserAgentMiddleware':543,# 开启

然后每次请求就会随机的user-agent。

下载中间件

建立一个middlewares的py文件,一般建项目时就存在的,然后定义类,定义方法,一般定义2个方法,分别是process_requests(self,request,spider)process_response(self,request,response,spider) 中间件会先通过前一个方法再进去到第二个方法,通过下载中间件可以设置请求头,代理。设置代理时,设置一个request.meata["proxy"] = "协议+ip地址+端口"request.meata["proxy"] = "https://255.255.255.255:999"。process_response的方法需要return一个request或者response对象。 在中间件中还可以设置对错误的一些处理方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值