目标
- 掌握requests处理cookie的三种方法
- 掌握分析js的方法
1 requests处理cookie相关的请求
1.1 回顾cookie和session的区别
- cookie数据存放在客户的浏览器上,session数据放在服务器上
- coolie不是安全的,别人可以分析放在本地的cookie并进行cookie欺骗
- session会在一定时间内保存在服务器上,当访问增多,会比较占用你服务器的性能
- 单个cookie保存的数据不超过4k,很多浏览器都限制一个站点最多保存20个cookie
1.2 爬虫中为什么要使用cookie
-
带上cookie的好处
- 能够访问登陆后的页面
- 正常的浏览器在请求服务器的时候肯定会岱山cookie(第一次请求某个地址除外),所以对方服务器有可能会通过是否携带cookie来判断我们是不是一个爬虫,对应的能够起到一定的反爬效果。
-
带上cookie的坏处
- 一套cookie往往对应的是一个用户的信息,请求tai’pi频繁可能被对方识别为爬虫
- 如何解决? 使用多个账号
1.3 requests处理cookie相关请求之session
- requests 提供了一个叫session类(不是1.1的session),来实现客户端和服务端的
会话保持
- 会话保持有两个内涵:
- 保存cookie
- 实现和服务器的长连接
- 使用方法
session = requests.session() response = session.get(url, headers)
session实例在请求了一个网站后,对方服务器设置在本地的cookie会保存在session中,下一次再使用session请求对方服务器的时候,会带上前一次的cookie
- 案例 使用session处理cookie自动登录人人网
"""关于如何获取post接口 看1.6"""
import requests
# 1. 实例化session
session = requests.Session()
# 2.使用session发送post请求,对方服务器会把cookie设置再session中
post_url = "http://www.renren.com/PLogin.do" # 如何获取这个post接口?
post_data = {
"email": "[email protected]", "password": "qqq213"}
headers = {
"user-agent": <