初探python爬虫(三)——cookie和session

##什么是cookie

http请求是无状态的请求协议
不会记住用户的状态和信息
也不清楚你在者这之前的访问过什么
因为网站需要记录用户是否登录时,
就需要在用户登录后创建一些信息
并且要把这些信息记录在当前用户的浏览器中,
记录的内容就是cookie

用户使用当前的这个浏览器继续访问这个服务器时,会主动携带这个网站设置的cookie信息
cookie会在浏览器中记录信息,并且在访问时懈怠这个信息
1。浏览器更换或删除cookie后,信息丢失
2.cookie在浏览器中记录的信息时不安全的,因此不能记录敏感信息
session是在服务器端进行数据的记录
并且在给每个用户生成一个sessionID,
并且把这个sessionID设置在用户的浏览器中,也就是设置为cookie

import requests

#定义请求的url
url = 'https://i.csdn.net/#/uc/profile'


#定义请求头信息
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
    'cookie': ''#这里的内容可以根据自己在登陆时查看cookie,然后直接粘贴在这里
}


#发起Get请求
res  =  requests.get(url=url,headers=headers)

#获取相应状态码,当响应状态码为200 时则表示请求成功
code = res.status_code
print(code)

if code ==200:
    with open ('E:/Learn/PythonLearn/demo04_cookie/text.html','w',encoding="utf-8") as fp:
        fp.write(res.text)

第二种设置cookie的方法

import requests

# 需要请求的目标地址
url = 'http://www.zmz2019.com/user/user'

# 登录请求的地址
loginurl = 'http://www.zmz2019.com/User/Login/ajaxLogin'

# 请求头
headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'
}

# 如果需要爬虫程序主动记录cookie并且携带cookie,那么在使用requests之前先调用session方法
# 并且使用session方法返回的对象发送请求即可
req = requests.session()

# 登录请求时的数据
#data的数据获取如下图
data = {
    'account': '',#这里输入自己的账号
    'password': '',#这里输入密码
    'remember': '1',
    'url_back': 'http://www.rrys2019.com/'

}
# 发起登录请求
res = req.post(url=loginurl,headers=headers,data=data)

# 判断状态
code = res.status_code
print(code)

if code == 200:
    # 发起新的请求,去获取目标数据
    res = req.get(url=url,headers=headers)
    with open('rr.html','w',encoding="utf-8") as fp:
        fp.write(res.text)

通过登录页面时,右键-》检查-》Network中找到是登录的页面,看到里面是post请求时,找到第二张图的From-data
在这里插入图片描述
在这里插入图片描述

发布了42 篇原创文章 · 获赞 12 · 访问量 6113

猜你喜欢

转载自blog.csdn.net/Alingyuzi/article/details/104197960
今日推荐