Cookie能够说是和我们的生活息息相干,当你在淘宝购物的时刻,那些引荐的宝贝就是Cookie的佳构。
上一篇我们解说的是Selenium+PhantomJs的基础操纵,本日给人人带来的是Cookie的引见和模仿登录演示。
什么是Cookie?
在计算机术语中是指一种能够让网站服务器把少许数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种手艺。
翻开Chrome的开发者东西(F12),点开Network,点击一个要求url,就能够看到要求头(Request Headers)内里的一个Cookie信息了。固然我们从上面的相应头中能够看到一个Set-Cookie的信息,这就是服务器向阅读器设置Cookie的一些信息,比方Cookie的作用域,时候等。
Cookie的用处
存储用户登录信息,推断用户是不是登录;保留用户阅读萍踪;
Cookie是服务器在客户端存储的信息。这些信息是有服务器生成服务器诠释的。
要求时,客户端需要把未超时的Cookies发送给服务器。服务器需要剖析Cookies推断用户信息。
我们的阅读器会在你每次阅读网页是自动存储cookie,比方你翻开消灭阅读器阅读纪录时,就会有cookie信息。
cookie给我们带来了许多方便,他还能够纪录我们的阅读萍踪,停止页面时候。比方你狂淘宝的时刻,淘宝的引荐你喜好的宝贝,就是依据你的cookie,猎取你阅读过哪些商品,而生成的。
模仿登录演示
我们还是以知乎为例。https://www.zhihu.com/people/yu-kun-73/answers
这个URL是我的知乎信息页,固然人人能够运用本身的知乎页做例子。假如我们直接接见他,会看到上方的登录按钮,而是我已登录了在接见呢。就不会显现登录按钮,而是个人编辑材料一些链接。
那末,假如我们运用爬虫去接见呢。
import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36' } url = 'https://www.zhihu.com/people/yu-kun-73/answers' resp = requests.get(url, headers=headers).text print(resp)
经由过程打印的效果,我们能够看到,html 代码里是有登录按钮的。这就证实我们并没有登录这个页面。那末,假如我们在爬取一些需要登录账号才够爬取数据的网站时,我们必定是要处置惩罚登录题目的。那末怎样完成登录呢。
答案就是我们的Cookie了。我们在之前的文章中说过,requests库在处置惩罚Cookie时,是异常简朴的。我们只需要向增加‘User-Agent’一样增加要求cookies就能够了。
import requests headers = { 'Cookie': # 你的登录事后的阅读器cookies, 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36' } url = 'https://www.zhihu.com/people/yu-kun-73/answers' resp = requests.get(url, headers=headers).text print(resp)
我们再次看打印信息,就能够看到有编辑个人材料的链接了。这就申明我们已胜利登录了。是不是是很简朴呢,别急,难的在后面呢。
末了
那末,假如我们要登录一些庞杂的网站,比方新浪微博这类必需要登录才猎取信息的网站,运用cookie登录是一定行不通的。由于这些网站会常常更新一些网站的算法,我们的cookie就会在事情一会失效,那末这些网站我们就需要向登录页post我们的登录信息。
这些登录信息参数平常都邑存放在登录页的要求头下面的Form Data内里,我们只需照顾这些信息Post,就能够顺遂登录。然则假如碰到验证码,那末就很麻烦了。验证码的题目一直是磨练爬虫的一个门坎,这个人人本身研讨。
以上就是Cookie引见和模仿登录演示的细致内容,更多请关注ki4网别的相干文章!