Python爬虫教程-12-爬虫使用cookie(上)

  • 爬虫关于cookie和session,由于http协议无记忆性,比如说登录淘宝网站的浏览记录,下次打开是不能直接记忆下来的,后来就有了cookie和session机制

Python爬虫爬取登录后的页面

所以怎样让爬虫使用验证用户身份信息的cookie呢,换句话说,怎样在使用爬虫的时候爬取已经登录的页面呢,这就是本篇的重点

cookie和session介绍

  • cookie是发给用户的(即http浏览器)的一段信息
  • session是保存在服务器上的对应的另一半信息,用来记录记录用户信息
  • cookie和session区别和联系:
    • 1.存放位置不同:cookie保存在本地,session保存在服务器
    • 2.cookie不安全
    • 为什么不安全,因为cookie是保存在本地的,也就是说用户可以就本地找到后进行修改
    • 所以一般用来存放用户身份信息,常用来识别用户身份,比如用户名+登录密码(站点也就不怕被修改了)
    • 当我们关闭浏览器后,再次打开一些网站,不用再次登录,也正是因为使用了保存在本地浏览器的cookie
    • 3.session会保存在服务器上有过期时间,cookie也有
    • 4.单个cookie保存数据不超过4k,部分浏览器会限制一个站点最多保存20个
    • 5.session保存在服务器
    • 一般情况下,session是放在内存中或者数据库中

使用cookie登录的网站

例如人人网:

第一步:Chrome打开登录

第二步:拷贝Chrome登录后的地址,使用火狐浏览器打开



这可以看到报错302

原因就是火狐浏览器的cookie和Chrome保存的cookie不一样,站点判断用户身份改变,所以不允许登录,另一方面,也就说明我们使用 cookie 验证身份是成功的

主角登场-爬虫使用cookie

既然其他浏览器不能直接访问网站,我们的爬虫就更不能了,所以怎样让爬虫使用验证用户身份信息的cookie呢?马上揭晓:

编写爬虫代码


# 爬虫使用cookie
from urllib import request if __name__ == '__main__':
url = "http://www.renren.com/967487029/profile" headers = {
# Cookie值从登录后的浏览器,拷贝,方法文章上面有介绍
"Cookie": "anonymid=jkw22rj1lr18nw; depovince=GW; _r01_=1; JSESSIONID=abcUPkh_yMcQi56IB9avw; ick_login=79ce148f-80c5-4a79-ad1e-897e847d7f34; ick=d4c0f36e-a5b8-4063-b781-8a8474c4a289; t=07c15f420c005cec1ff760ee5370cfeb9; societyguester=07c15f420c005cec1ff760ee5370cfeb9; id=967487029; xnsid=bf077aca; XNESSESSIONID=6302ff129554; BAIDU_SSP_lcr=https://www.baidu.com/link?url=4ejhDX-FjIJI0Ma--EY03Dbwea0D_c1HhU7ExMXfUxO&wd=&eqid=c4ff527c00007cb4000000035b74fb58; wp_fold=0; jebe_key=d4adac05-f904-479c-bf00-a4b55d282a51%7C43e5f9c3c001a1d1846f8b82a462cefd%7C1534398658919%7C1; jebecookies=6031f512-d289-4dff-b1d6-aaa7849bd1ff|||||"
} req = request.Request(url=url,headers=headers) rsp = request.urlopen(req)
html = rsp.read().decode() with open("rsp.html","w",encoding="utf-8")as f:
# 将爬取的页面
print(html)
f.write(html)

运行结果



现在我们可以在返回的html页面看到自己的登录信息了,也就说明cookie使用成功了

今天介绍的是手动拷贝cookie,后面会介绍如何自动的使用!

更多文章链接:Python 爬虫随笔


- 本笔记不允许任何个人和组织转载

Python爬虫教程-12-爬虫使用cookie爬取登录后的页面(人人网)(上)的更多相关文章

  1. Python爬虫教程-13-爬虫使用cookie爬取登录后的页面(人人网)(下)

    Python爬虫教程-13-爬虫使用cookie爬取登录后的页面(下) 自动使用cookie的方法,告别手动拷贝cookie http模块包含一些关于cookie的模块,通过他们我们可以自动的使用co ...

  2. Python之爬虫(二十) Scrapy爬取所有知乎用户信息(上)

    爬取的思路 首先我们应该找到一个账号,这个账号被关注的人和关注的人都相对比较多的,就是下图中金字塔顶端的人,然后通过爬取这个账号的信息后,再爬取他关注的人和被关注的人的账号信息,然后爬取被关注人的账号 ...

  3. python网络爬虫之解析网页的BeautifulSoup(爬取电影图片)[三]

    目录 前言 一.BeautifulSoup的基本语法 二.爬取网页图片 扩展学习 后记 前言 本章同样是解析一个网页的结构信息 在上章内容中(python网络爬虫之解析网页的正则表达式(爬取4k动漫图 ...

  4. 爬虫(二)Python网络爬虫相关基础概念、爬取get请求的页面数据

    什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫    1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...

  5. Python爬虫教程-32-Scrapy 爬虫框架项目 Settings.py 介绍

    本篇介绍项目开发的过程中,对 Setting 文件的配置和使用 Python爬虫教程-32-Scrapy 爬虫框架项目 Settings.py 介绍 settings.py 文件的使用 想要详细查看 ...

  6. Python爬虫教程-30-Scrapy 爬虫框架介绍

    从本篇开始学习 Scrapy 爬虫框架 Python爬虫教程-30-Scrapy 爬虫框架介绍 框架:框架就是对于相同的相似的部分,代码做到不出错,而我们就可以将注意力放到我们自己的部分了 常见爬虫框 ...

  7. Python爬虫实战(2):爬取京东商品列表

    1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反 ...

  8. Python网络爬虫第三弹《爬取get请求的页面数据》

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

  9. python网络爬虫《爬取get请求的页面数据》

    一.urllib库 urllib是python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在python3中的为urllib.request和urllib. ...

随机推荐

  1. Windows下的特殊unicode输入

    相信很多运维人员见过这样的一种输入方法,按住键盘的ALT键然后在小键盘处输入88,放开ALT键,然后再按住ALT在小键盘处输入80,再放开键盘,屏幕光标文本处就会依次出现XP这个2个字母,这个很神奇, ...

  2. php中慎用==

    var_dump(' 123fg456'==123);var_dump('some string' == 0);var_dump(123.0 == '123d456');var_dump(0 == & ...

  3. 矩阵&&高斯消元

    矩阵运算: \(A\times B\)叫做\(A\)左乘\(B\),或者\(B\)右乘\(A\). 行列式性质: \(1.\)交换矩阵的两行(列),行列式取相反数. \(2.\)某一行元素都\(\ti ...

  4. js toFixed 方法重写,兼容负数

    Number.prototype.toFixed = function (s) { var that = this, changenum, index; if (this < 0) { that ...

  5. PIE SDK影像坏线修复

    1.算法功能简介 坏条带的由来:2003年5月31日,Landsat-7ETM+机载扫描行校正器(SLC) 故障,导致此后获取的影像出现了数据条带丢失,严重影响了Landsat ETM遥感影像的使用. ...

  6. String字符串排序1.8 lamda表达式以及1.7自定义排序

    // 1.8 public class text { public static void main(String[] args) { String s1 = "哈哈哈11,呵呵呵22,嘿嘿 ...

  7. 学习react心得及总结

    注意学习这个在D盘:小红书第一部分的案例react/new-my-app 小红书第二部分的案例react/make-redux 小红书第三部分的案例react/my-app-higher 并且里面有说 ...

  8. react渲染原理深度解析

    https://mp.weixin.qq.com/s/aM-SkTsQrgruuf5wy3xVmQ   原文件地址 [第1392期]React从渲染原理到性能优化(二)-- 更新渲染 黄琼 前端早读课 ...

  9. (转)error while loading shared libraries:libmysqlclient.so.18 错误

    error while loading shared libraries:libmysqlclient.so.18错误 新手安装php的时候如果出现这种问题,解决办法很简单,就是查看你的mysql安装 ...

  10. 使用express、react、webpack打包、socket.io、mongodb、ant.design、less、es6实现聊天室

    拿到一个项目,我们应该如何去完成这个项目呢. 是直接上手? 还是先进行分析,然后再去解决呢?毫无疑问,如果直接上手解决,那么可能会因为知道目标所在,而导致出现各种问题. 所以,我们应该系统的分析这个项 ...