python中cookie是什么意思,python 爬虫 cookie

  python中cookie是什么意思,python 爬虫 cookie

  

  cookie是什么?

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

  cookie如何工作

  当你第一次访问一个网站时,服务器会给你一个特定的cookie。之后你每次访问这个网站,你发出的请求都会在头中有对应的cookie,这样服务器就知道这两个请求是同一个客户发出的。

  相关:《Python教程》

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

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

  是的,第二次访问的时候会发现响应头中没有这个set cookie字段,但是请求头中多了一个cookie字段,仔细看会发现这个值正是刚才响应头中set cookie字段的值。其实只要不关闭浏览器,打开一个窗口就会发现这个cookie值还是这个。默认情况下,如果您关闭或更改浏览器,服务器将认为这是一个新会话。cookies的保存时间是可以设置的,你会找到知乎、简书等网站。只要登录成功,即使关闭浏览器,几天后还是会登录,也就是说这个cookie是持久性cookie,存储时间比较长。

  从上面两张图中,我们可以发现cookie实际上存在于http请求和响应头中。

  如何用python实现cookie登陆

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

  然后复制cookie,就可以开始写代码了。

  导入请求

  frombs4importBeautifulSoup

  标题={

  用户代理“:”Mozilla/5.0(windows nt 10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/61.0.3163.100

  Safari/537.36 ,

  referer : https://www . zhi Hu.com/,

  cookie : q _ C1=36160 DC 56 c 7d 4 cf 3 af 14559 E4 ea 69 ed 1 1508646188000 1508646188000;q _ C1=E1 ADB 01 BC 55343 c 0 b 61 e 0d 4 e 08 f 73344

  15086461880001508646188000;_ zap=7926 df 57-02e 2-45a 7-9244-85ff 9156 e 100;d _ c0= abaccupkwyptgydzlhc 0-ywrlddeoj 3 _ w=

  1508841150;r _ cap _ id= nje 4 ywexotixm 2 ywngvlodhmnjc 5 zde 3 mgqynwm 0 JM= 1508844066

  4207 FBC 525684854 CB 948 b 64 e 10 a 3c 693 a 999056’;cap _ id= yzrymm 5 ytjhzwm 4 ngfiywexogyzotu 1 zjczmgmyogi= 1508844066

  a 828518 B3 a 798 b 99 e 4 ea 0 CD 6 a 54 f 25 DC 31d 70 c6d ;z _ c0=mi 4 xtk 5 wx 0 fnqufbzufbrufjszrzlvreqmqmnqucaefsvk 5 zm 0 r JV 2 ddwehfts 16 TMV 1

  dk 80 dtvzsnpqognpbl f 3 15088444211 c 34 b 0d 4374988 f 038 beedfa cbcd 48 e 2271 a0c 66;_ _ utma=51854390.9338486386

  1508841151.1508843285.2;_ _ utmz=51854390.1508841151 . 1 . 1 . UTM CSR=Baidu ut mccn=(organic) ut mcmd=organic;__utmv=51854390。

  100-12=registration_date=20160120=1^3=entry_date=20160120=1;aliyungf _ TC=aqaaab 0 ub 1 awqiae 7 ykccclinzxafvoi;

  _ xsrf=3283 d7f 2-8e 92-4b 94-9b0e-1105 C2 d 069d 0

  }

  RES=requests . get( https://www . zhi Hu.com/search?type=contentq=java ,headers=headers)

  soup=BeautifulSoup(res.text, html.parser )

  n=soup.select(。列表)[0]。选择(。项目’)

  是的,您可以发现您已经捕获了需要登录才能看到的页面,如果您删除了请求头中的cookie字段,您将被重定向到登录页面。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: