1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 利用cookie实现登陆知网与抽屉网 基于session自动登录抽屉网 cookie与session区别

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

时间:2024-06-12 03:34:00

相关推荐

利用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 requestsurl=""response=requests.get(url)# print(response.cookies)#利用cookie模拟登陆知乎# 利用cookie模拟登录知乎url=""response=requests.get(url,headers={"User-Agent":"""Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/0101 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 = "/"# 通过浏览器获取的操作一般都是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 = "/login"response = requests.post(url,#在参数里可查看到data={"phone": "8615896901897","password": "qweqweqwe1","oneMonth": "1",},headers={"User-Agent": agent.random,},cookies=cookies,)

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

#同上述方法获得url url = "/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 requestsfrom fake_useragent import UserAgentagent = UserAgent()

如果通过session发请求,会自动携带cookie

session = requests.session()

获取首页

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

模拟登录

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

开始点赞/评论

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

print(s3.text)

cookie和session的区别:

cookie和session是共存亡的关系

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。