在实际情况中,很多网站的内容都是需要登录之后才能看到,如此我们就需要进行模拟登录,使用登录后的状态进行爬取。这里就需要使用到Cookie。

使用Cookie进行模拟登录

现在大多数的网站都是使用Cookie跟踪用户的登录状态,一旦网站验证了登录信息,就会将登录信息保存在浏览器的cookie中。网站会把这个cookie作为验证的凭据,在浏览网站的页面是返回给服务器。因为cookie是保存在本地的,自然cookie就可以进行篡改和伪造,暂且不表,我们先来看看Cookie长什么样子。打开网页调试工具,随便打开一个网页,在“network”选项卡,打开一个链接,在headers里面:

我们复制出来看看:

__guid=137882464.208312339030071800.1455264073383.613;

__huid=10POq43DvPO3U0izV0xej4%2BFDIemVPybee0j1Z1xnJnpQ%3D;

__hsid=825c7462cc8195a5;

somultiswitch=1;

__seedSign=68;

count=1; sessionID=132730903.3074093016427610600.1483758834211.764;

piao34=1;

city_code=101280101;

customEng=1-7

由一个个键值对组成。

接下来,我们以看看豆(http://kankandou.com)的一本书籍的详情页为例,讲解一下Cookie的使用。

看看豆是一个电子书下载网站,自己Kindle上的书多是从这上面找寻到的。

示例网址为:https://kankandou.com/book/view/22353.html

正常情况下,未登录用户是看不到下载链接的,比如这样:

隐藏了书籍的下载链接。其头信息如下:

我们再看看登录之后的页面:

下载链接已经显示出来了,我们看看头信息的Cookie部分

很明显地与之前未登录状态下的Cookie有区别。

接下来,我们按照上一章爬取腾讯新闻的方法,对示例网址(https://kankandou.com/book/view/22353.html)进行HTTP请求:

# coding:utf-8

import requests

from bs4 import BeautifulSoup

url = 'https://kankandou.com/book/view/22353.html'wbdata = requests.get(url).text

soup = BeautifulSoup(wbdata,'lxml')

print(soup)

结果如下:

我们从中找到下载链接存在的栏目“书籍导购”的HTML代码:

书籍导购

去亚马逊购买《宇宙是猫咪酣睡的梦》

如同我们在未登录状态使用浏览器访问这个网址一样,只显示了亚马逊的购买链接,而没有电子格式的下载链接。

我们尝试使用以下登录之后的Cookie:

使用Cookie有两种方式,

1、直接在header头部写入Cookie

完整代码如下:

# coding:utf-8

import requests

from bs4 import BeautifulSoup

cookie = '''cisession=19dfd70a27ec0eecf1fe3fc2e48b7f91c7c83c60;CNZZDATA1000201968=1815846425-1478580135-https%253A%252F%252Fwww.baidu.com%252F%7C1483922031;Hm_lvt_f805f7762a9a237a0deac37015e9f6d9=1482722012,1483926313;Hm_lpvt_f805f7762a9a237a0deac37015e9f6d9=1483926368'''header = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36',

'Connection': 'keep-alive',

'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',

'Cookie': cookie}

url = 'https://kankandou.com/book/view/22353.html'wbdata = requests.get(url,headers=header).text

soup = BeautifulSoup(wbdata,'lxml')

print(soup)

上述代码返回了对页面(https://kankandou.com/book/view/22353.html)的响应,

我们搜索响应的代码,

红色椭圆的部分与未带Cookie访问是返回的HTML一致,为亚马逊的购买链接,红色矩形部分则为电子书的下载链接,这是在请求中使用的Cookie才出现的对比实际网页中的模样,与用网页登录查看的显示页面是一致的。功能完成。接下来看看第二种方式

2、使用requests的cookies参数

完整代码如下:

# coding:utf-8

import requests

from bs4 import BeautifulSoup

cookie = {"cisession":"19dfd70a27ec0eecf1fe3fc2e48b7f91c7c83c60",

"CNZZDATA100020196":"1815846425-1478580135-https%253A%252F%252Fwww.baidu.com%252F%7C1483922031",

"Hm_lvt_f805f7762a9a237a0deac37015e9f6d9":"1482722012,1483926313",

"Hm_lpvt_f805f7762a9a237a0deac37015e9f6d9":"1483926368"}

url = 'https://kankandou.com/book/view/22353.html'

wbdata = requests.get(url,cookies=cookie).text

soup = BeautifulSoup(wbdata,'lxml')

print(soup)

如此获取到的也是登录后显示的HTML:

这样,我们就轻松的使用Cookie获取到了需要登录验证后才能浏览到的网页和资源了。这里只是简单介绍了对Cookie的使用,关于Cookie如何获取,手动复制是一种办法,通过代码获取,需要使用到Selenium,接下来的章节会讲解,这里暂且不表。

州的先生:爬虫、采集、分析

长按二维码

关注

python模拟登记获取cookie_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...相关推荐

  1. python模拟登录页面下载_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...

    在实际情况中,很多网站的内容都是需要登录之后才能看到,如此我们就需要进行模拟登录,使用登录后的状态进行爬取.这里就需要使用到Cookie. 现在大多数的网站都是使用Cookie跟踪用户的登录状态,一旦 ...

  2. python爬虫登录下载_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...

    在实际情况中,很多网站的内容都是需要登录之后才能看到,如此我们就需要进行模拟登录,使用登录后的状态进行爬取.这里就需要使用到Cookie. 现在大多数的网站都是使用Cookie跟踪用户的登录状态,一旦 ...

  3. Python爬虫实战(5):模拟登录淘宝并获取所有订单

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  4. python爬虫入门教程pdf-Python爬虫实战入门教程.pdf

    Python 爬虫实战入门教程 州的先生 <Python 爬虫实战入门教程> 作者:州的先生 微信公众号:州的先生 博客: 2018/3/24 1 Python 爬虫实战入门教程 州的先生 ...

  5. Python爬虫实战(5)斗图啦表情包下载(单线程)

    Python爬虫实战(5)斗图啦表情包下载(单线程) 网页分析 代码 注意事项 文件名的中文标点 文件后缀os.path.splitext 网页反爬虫 输出结果 总结 利用BeautifulSoup ...

  6. 从入门到精通 pdf_【推荐】铅笔素描从入门到精通pdf|素描基础教程电子书下载!...

    铅笔素描从入门到精通pdf|素描基础教程电子书下载!铅笔素描从入门到精通pdf|素描基础教程电子书下载!铅笔素描从入门到精通pdf|素描基础教程电子书下载! 如果你的基础太薄弱,不建议自己瞎摸索,你可 ...

  7. Python爬虫实战之(五)| 模拟登录wechat

    作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一 ...

  8. Python爬虫实战之(五)| 模拟登录wechat 1

    作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一 ...

  9. python爬虫多url_Python爬虫实战入门六:提高爬虫效率—并发爬取智联招聘

    之前文章中所介绍的爬虫都是对单个URL进行解析和爬取,url数量少不费时,但是如果我们需要爬取的网页url有成千上万或者更多,那怎么办? 使用for循环对所有的url进行遍历访问? 嗯,想法很好,但是 ...

最新文章

  1. android TextView 带滚动条,和ScrollView 用法(暂时觉得ScrollView滑动速度比较快)
  2. Linux的简单介绍.
  3. du,df,fdisk,mkfs.ext3命令详解
  4. Oracle 数据类型及存储方式(袁光东 原创)
  5. C语言 | 一维数组
  6. 心得体会:分治法 || 做题也有模板
  7. windows 远程连接debian_UOS统一操作系统远程协助软件TeamViewer
  8. mysql做四则运算_MySQL字符串进行四则运算以及比较
  9. C语言10进制写法,用c语言编写函数Htoi(s)把由16进制数成10进制的数
  10. 游戏服务器的架构设计(一点参考,实际价值似乎不大……)
  11. 【Flutter】微信项目实战【06】 通讯录界面搭建(中)
  12. 绝佳的录屏编辑神器,一款走遍天下
  13. electron入门笔记(三)- 引入bootstrap
  14. 2021华为软挑赛题_思路分析——实时更新,做多少更多少(一)
  15. WeChat-JSAPI支付
  16. android4.2.2飞歌导航,智能车机新典范 飞歌G6S荣耀版导航鉴赏
  17. nn棋盘放n个皇后java_帮忙解决一道大学c++题八皇后问题。在一个8*8的国际象棋盘,有八个皇后,每个皇后占一格:要求棋盘上放上八个皇后是不出现...
  18. 史上最全 | 室外大规模3D检测数据集汇总
  19. Exp5 MSF基础应用 20164302 王一帆
  20. html给页面整体添加左右边距_css div 网页的页面边距怎么控制

热门文章

  1. Commons Collections学习笔记(四)
  2. 用模糊查询like语句时如果要查是否包含%字符串该如何写
  3. 爱立信:5G将加速物联网发展
  4. aswing JTable用法
  5. Captaris Workflow开发系列课程介绍。
  6. hough变换检测圆周_一文解读经典霍夫变换(Hough Transform)
  7. 大油井隐藏的箱子_房子买的小户型,4招变大不止一倍
  8. 信息学奥赛一本通 1381:城市路(Dijkstra)
  9. 信息学奥赛一本通 2054:【例3.4】适合晨练
  10. 信息学奥赛一本通 2060:【例1.1】计算机输出