知行编程网知行编程网  2022-11-01 03:30 知行编程网 隐藏边栏  12 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python获取cookie有什么用的相关知识,包括cookie如何获取,以及cookie数据这些编程知识,希望对大家有参考作用。

Python中获取cookie有什么用


cookie是什么?

Cookie是指某些网站为了识别用户身份和跟踪会话而存储在用户本地终端上的数据(通常是加密的)。在 Web 开发中,经常需要跟踪会话。因为http请求是一个无状态的协议,也就是说只有通过http,服务器是无法区分不同客户端的。也就是说,你访问这个页面,刷新一次之后,如果没有cookie,服务器不知道现在刷新的用户和刚刚访问的用户是同一个用户,就被处理了作为一个新的请求,所以这带来了一定的不便。尤其是需要登录的页面,并不是每页都登录一次,每次刷新都登录一次。也就是说,需要某种机制来增强http协议,使服务器能够区分是同一个客户端。而这个机制就是cookie。


cookie如何工作

当你第一次访问一个网站时,服务器会给你下发一个特定的cookie,而你每次访问该站点时,都会在你发送的请求头中包含相应的cookie,这样服务器就会知道这两个请求。由同一客户端发送。

Python中获取cookie有什么用

当你第一次访问网站时,服务器会给你一个 cookie。响应头中有一个 set-cookie 字段,它告诉浏览器把这个 cookie 放到本地,以后你访问我的网站时,它会带上这个 cookie。来吧,我知道你是谁。

然后刷新页面,相当于第二次访问

Python中获取cookie有什么用

你会发现,当你第二次访问的时候,设置的cookie字段已经不在response headers中了,而是在request headers中多了一个cookie字段,仔细看你会发现这个值正是响应标头设置 cookie 字段。价值。其实只要不关闭浏览器,打开一个窗口就会发现cookie值还是一样的。默认情况下,如果你关闭浏览器或切换到另一个浏览器,服务器会认为这是一个新会话。可以设置cookie的存储时间。你会发现知乎、简书等网站。只要登录成功,即使关闭浏览器,过几天还是会登录,说明cookie是持久化cookie。存放时间比较长。

从上面两张图可以发现,http request 和 response headers 中其实都存在 cookie。


如何用python实现cookie登陆

现在我们了解了 cookie 机制,我们尝试使用 cookie 登录。以登录知乎为例,如果你用账号和密码登录,验证码是个大问题,至少目前对我来说是这样,所以你先用浏览器手动登录知乎。右键进入开发者选项,网络,选择www.zhihu.com,查看请求头信息。

Python中获取cookie有什么用

然后把cookie复制下来,可以开始写代码了。

import requests
from bs4 import BeautifulSoup
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 
Safari/537.36',
'Referer':'https://www.zhihu.com/',
'Cookie':'q_c1=36160dc56c7d4cf3af14559e4ea69ed1|1508646188000|1508646188000; q_c1=e1adb01bc55343c0b61e0d4e08f73344|
1508646188000|1508646188000; _zap=7926df57-02e2-45a7-9244-85ff9156e100; d_c0="ABACCuGPkwyPTgYydZLhc0-YwrldDeOJ3_w=|
1508841150"; r_cap_id="NjE4YWExOTIxM2YwNGVlODhmNjc5ZDE3MGQyNWM0MjM=|1508844066|
4207fbc525684854cb948b64e10a3c693a999056"; cap_id="YzRhYmM5YTJhZWM4NGFiYWExOGYzOTU1ZjczMGMyOGI=|1508844066|
a828518b3a798b99e4ea0cd6a54f25dc31d70c6d"; z_c0=Mi4xTk5WX0FnQUFBQUFBRUFJSzRZLVREQmNBQUFCaEFsVk5zM0RjV2dDWEhfTS16TmV1
dk80dTVZSnpqOGNpX3NpblF3|1508844211|c34b0d4374988f038beedfa2cbcd48e2271a0c66; __utma=51854390.9389312.1508841151.
1508841151.1508843285.2; __utmz=51854390.1508841151.1.1.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmv=51854390.
100-1|2=registration_date=20160120=1^3=entry_date=20160120=1; aliyungf_tc=AQAAAB0uB1XAWQIAE7YKcClINzXafvOI; 
_xsrf=3283d7f2-8e92-4b94-9b0e-1105c2d069d0'
}
res=requests.get("https://www.zhihu.com/search?type=content&q=java",headers=headers)
soup=BeautifulSoup(res.text,'html.parser')
n=soup.select(".list")[0].select(".item")

Python中获取cookie有什么用

可以发现需要登录才能查看的页面已经被抓到了,如果去掉请求头中的cookie字段,就会重定向到登录页面。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享