学完验证码自动识别以后,学习cookie和session.
今天学习的特别艰难,首先是时过境迁,网站已经发生了很多变化,很多操作跟着老师来已经实现不了了,很难找到合适的网站。另一个问题就是浏览器,火狐浏览器的抓包工具和Chrome的不太一样...导致我的学习进度十分缓慢,再者就是我的操作很多失误,一直没有得到想要的结果,好在现在已经解决了,不过还是要多加练习比较好。
cookie 的介绍:
某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 。比如说,我们在电脑上登录了淘宝的网页,但是当我们下次打开时依旧是登录的状态,这就是cookie发挥的作用,将用户的信息数据存储起来了。
同时还要学习session:
-1.可以进行请求的发送
-2.如果请求过程中产生了cookie,则该cookie会被自动存储/携带在该session对象中
本次需求:使用cookie模拟登录人人网。
首先我们在浏览器中登录人人网,使用抓包工具查看一下页面。
登录后会有一个login的post请求,我们点开后可以看到下面的cookie还有一些data。

下面就是一会要发post请求时data里的参数:

现在打开pycharm开始模拟登录。
首先导包。
import requests接着,我们要对网页做一个post请求,url也是login请求里的url(这里出错过),然后再将参数都输入。而且要创建一个Session类的实例session,后面的requests都将改成session。
# 创建一个session的实例
session = requests.Session()
url = "http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2021361818531"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"
}
data = {
"email": "1085947752@qq.com",
"icode": "",
"origURL": "http://life.renren.com/",
"domain": "renren.com",
"key_id": "1",
"captcha_type": "web_login",
"password": "61d91be2c133d307c85d5a00d3f6ce8cc2d6ff449d83b2cd98d93c046882ae4b",
"rkey": "0323aa4e9d1115b71c099a62a9c266da",
"f": "http % 3A % 2F % 2Flife.renren.com % 2F"
}
# 使用session进行post请求的发送
response = session.post(url=url, headers=headers, data=data)
detail_page_text = response.text
print(response.status_code)这样我们就爬取了当前用户的个人主页对应的页面数据,接下来就要使用携带cookie的session进行get请求的发送。
# 个人主页的url(曾出错)
detail_url = "http://www.renren.com/465756484/profile"
page_text = session.get(url=detail_url, headers=headers).text
with open("renren.html", "w", encoding="utf-8") as fp:
fp.write(page_text)
print("done")查看一下运行结果:
200 # 200代表成功
done现在生成了一个叫做renren.html的html文件,我们使用浏览器打开

依旧是登录的状态,表示成功。
刚刚翻看了一下之前的文件,发现又忘记了不少内容,决定写一篇复习了。(开始挖坑),毕竟我的存货快没了QAQ!!
现在为止我对cookie和session的了解还不够深入,现在去查看资料好好了解一下,加深理解。