携带cookie登录

本文介绍了为何需要模拟登录,回顾了requests和selenium的登录方式,并详细讲解了在Scrapy中如何直接携带cookie进行模拟登录。此外,还讨论了start_urls的请求处理,并提供了人人网爬虫实战案例,包括个人主页和资料页的URL分析。
摘要由CSDN通过智能技术生成

scrapy模拟登录

为什么需要模拟登录

获取登录后的页面的信息
获取cookie

回顾:

requests模块是如何模拟登录的?

1.直接携带cookie请求页面

headers={
   
    "User-Agent": "",
    'Cookie':''
}

response=requests.get(url,headers=headers)

2.找接口发送post请求存储cookie

# 将cookie字符串转化为一个字典形式
response=requests.get(url,headers=headers,cookies=cookies)

3.session实现会话保持

import session

session=requests.session()

data={
   
    "email":"",
    "password":""
}
response=session.post(url,headers=headers,data=data)

response2=session.get("http://www.renren.com/973016491/profile")
selenium是如何实现登录的?

找到对应的input标签,输入文字后点击登录按钮就可以实现登录

scrapy模拟登录

1.直接携带cookie

应用场景

1.cookie过期时间很长,常见于一些不规范的网站
2.能够在cookie过期之前把所有的数据拿到
3.配合其他的程序使用,比如先使用selenium把登录之后的cookie信息获取并保存在本地(数据库中),然后我们使用scrapy发送请求之前先读取本地的cookie信息

start_urls地址的请求是谁发送呢?

在这里插入图片描述

为什么我们要知道srart_urls对应的请求是谁发送的呢?

如果说最开始srart_urls这个地方放置的url地址是我们登陆之后才能够访问的url地址,比如说是我们12306的个人主页,我们直接请求一定是拿不到12306的个人主页的,那么我们在构造start_urls之前需要额外做一些事情。
比如说我们需要请求人人网的个人主页,如果我们直接去请求肯定是不成功的,所以在请求之前,在构造请求之前需要对start_urls请求自定义一些设置,自己尝试着通过某一些方法去构造关于url地址的请求,比如说加上cookie信息,加上之后就可以成功了。

srart_urls对应的请求是谁发送的呢?

我们定义在spider下的start_urls=[]默认都是交给start_requests处理的,所以说如果必要的话,我们可以重写start_requests方法

    def start_requests(self):
        cls = self.__class__
        if not self.start_urls and 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值