欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

利用cookie实现登陆知网与抽屉网 基于session自动登录抽屉网 cookie与session区别

发布时间:2023/12/20 编程问答 46 豆豆
生活随笔 收集整理的这篇文章主要介绍了 利用cookie实现登陆知网与抽屉网 基于session自动登录抽屉网 cookie与session区别 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

将利用cookie实现登陆知网、抽屉网  和  基于session自动登录抽屉网    写在一起,主要是这样更利于比较session和cookie二者的差别

利用cookie实现登陆知网与抽屉网

Cookie:小蛋糕,饼干

特点
1. 用于存储用户的某些信息(不包含隐私信息)
2. 只用于存储少量数据
3. cookie是个文件,位于浏览器

4. cookie有生命周期,一旦网页退出,cookie就失效了

 1. 如果网站登录的时候需要写验证码,可以考虑通过cookie直接登录
 例如:知乎网
 注意:cookie需要手动登录以后再粘贴,粘贴的是登录进去之后的cookie

例子:模拟cookie登录知乎

       打开1.html文件可自动实现登录,但前提是必须手动登录进去知乎网站基于session自动登录抽屉网

import requests url="http://dig.chouti.com" response=requests.get(url) # print(response.cookies)#利用cookie模拟登陆知乎 # 利用cookie模拟登录知乎 url="https://www.zhihu.com" response=requests.get(url,headers={"User-Agent":"""Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0""","Cookie":"""q_c1=9dc2d4b654714d768acde5be0cff9744|1517306017000|1517306017000; _zap=c2979b69-2322-4e05-9fb4-764c1fa2fdf0; aliyungf_tc=AQAAAKS0i1yPJQoALROfdSgGTSGtXL2A; d_c0="AEAtHb-8NQ2PTrKjUrihvjX4w1Sjk0uKPL4=|1519724547"; _xsrf=bc4453d9-3193-4a94-9e32-18c74975063c; capsion_ticket="2|1:0|10:1519724585|14:capsion_ticket|44:MDU4MDExNmE3MDczNGQ3MDk3OWJiMjNmYmEyYjQ1YzE=|ee15c3010fa505d413ed4ca6426e61725d212f7981e9c0c87f550a41c1af4e95"; z_c0="2|1:0|10:1519724661|4:z_c0|92:Mi4xX1hBRkNBQUFBQUFBUUMwZHY3dzFEU1lBQUFCZ0FsVk5kWGFDV3dCbjlUVDRhUUFzaExtUnBZNFotcFVBbFVFTkd3|e58fc834c5c512c74debbcef01ea67024f28d7555bc85dfb02228c8d4444941e"""}) with open("1.html",'wb') as f:f.write(response.content) print(response.content) print(response.content)2. 如果网站登录的时候不需要验证码,可以考虑通过代码自动登录
 例如:抽屉网

注意:它的cookie是通过代码自动获取的

例子:模拟cookie登录抽屉网

抽屉网的登录逻辑(其它网站不适用)
1. 先获取在首页服务器自动返回的cookie,因为它是用户的凭证
2. 开始登录(要携带上第一步的cookie)
3. 开始点赞/评论......

import requests #从fake_useragent引入UserAgent类,只要用于获取User-Agent,省去每次去浏览器找的工作 from fake_useragent import UserAgent #创建对象 agent = UserAgent() # 不要重复造轮子 #在命令框中找是否有某个工具包的方法 # pip search 工具包名字 #例如: pip install fake_useragent获取在首页服务器自动返回的cookie
url = "http://dig.chouti.com/" # 通过浏览器获取的操作一般都是get请求 response = requests.get(url,headers={# "User-Agent": RandomAgent.rand()"User-Agent": agent.random} ) #将cookies转换为字典形式 cookies = response.cookies.get_dict()

开始登录(要携带上第一步的cookie)

#开始登录(要携带上第一步的cookie) #在打开到查看元素的网络,清除所有信息,然后点登陆按钮,点开第一个post请求,然后将右边的请求网址复制过来当做url url = "http://dig.chouti.com/login" response = requests.post(url,#在参数里可查看到data={"phone": "8615896901897","password": "qweqweqwe1","oneMonth": "1",},headers={"User-Agent": agent.random,},cookies=cookies, )

开始点赞/评论......

#同上述方法获得url url = "http://dig.chouti.com/link/vote?linksId=17717073" response = requests.post(url,headers={"User-Agent": agent.random,},cookies=cookies, ) print(response.text)

抽屉网登录时:

1. 第一次访问首页的时候 服务器 返回一个cookie

2. 携带1的cookie进行登录,服务器 返回另一个cookie,所以在登录与开始点赞/评论过程中,只能用第一次访问首页时返回的cookie,不能用之后的cookie


 基于session自动登录抽屉网

import requests from fake_useragent import UserAgent agent = UserAgent()如果通过session发请求,会自动携带cookie
session = requests.session()

获取首页

s1 = session.get("http://dig.chouti.com/", headers={"User-Agent": agent.random})

模拟登录

s2 = session.post("http://dig.chouti.com/login", data={"phone": "8615896901897","password": "qweqweqwe1","oneMonth": "1",}, headers={"User-Agent": agent.random})

开始点赞/评论

s3 = session.post("http://dig.chouti.com/link/vote?linksId=17717071",headers={"User-Agent": agent.random}) print(s3.text)

cookie和session的区别:

                                cookie

                        session

1.cookie存储在浏览器\客户端session存储在服务器
2.cookie不适合存储私密数据,不安全,可以通过手段获取客户端保留的cookie信息因为session是存储在服务器端的,相对比cookie更加安全
3.cookie一般用来存储少量数据      例如:状态登录/历史记录因为session存储在服务器中,所以存储数据的大小理论上没有限制

cookie和session是共存亡的关系

如果一个网站禁用了cookie,但是还可以保留登录状态,一般会在参数中携带一个sessionId参数,用来跟踪回话,保留状态



总结

以上是生活随笔为你收集整理的利用cookie实现登陆知网与抽屉网 基于session自动登录抽屉网 cookie与session区别的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。