热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Cookie介绍和模拟登录演示

Cookie可以说是和我们的生活息息相关,当你在淘宝购物的时候,那些推荐的宝贝就是Cookie的杰作。上一篇我们讲解的是Selenium+PhantomJs的基本操作,今天给大家带

本文摘自php中文网,作者爱喝马黛茶的安东尼,侵删。

COOKIE可以说是和我们的生活息息相关,当你在淘宝购物的时候,那些推荐的宝贝就是COOKIE的杰作。

上一篇我们讲解的是Selenium+PhantomJs的基本操作,今天给大家带来的是COOKIE的介绍和模拟登录演示。

zz.jpg

什么是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是我的知乎信息页,当然大家可以使用自己的知乎页做例子。如果我们直接访问他,会看到上方的登录按钮,而是我已经登录了在访问呢。就不会显示登录按钮,而是个人编辑资料一些链接。

那么,如果我们使用爬虫去访问呢。

1

2

3

4

5

6

7

8

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就可以了。

1

2

3

4

5

6

7

8

9

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介绍和模拟登录演示的详细内容,更多文章请关注编程笔记!!


推荐阅读
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • python限制递归次数(python最大公约数递归)
    本文目录一览:1、python为什么要进行递归限制 ... [详细]
author-avatar
冰雪聪明
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有