投稿    登录
  《Python3网络爬虫开发实战》赠书活动正在进行中!详情请戳赠书活动!欢迎参与!非常感谢!

Python爬虫入门六之Cookie的使用

Python 崔庆才 251332浏览 105评论

大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用。

为什么要使用Cookie呢?

Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)

比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了。

在此之前呢,我们必须先介绍一个opener的概念。

1.Opener

当你获取一个URL你使用一个opener(一个urllib2.OpenerDirector的实例)。在前面,我们都是使用的默认的opener,也就是urlopen。它是一个特殊的opener,可以理解成opener的一个特殊实例,传入的参数仅仅是url,data,timeout。

如果我们需要用到Cookie,只用这个opener是不能达到目的的,所以我们需要创建更一般的opener来实现对Cookie的设置。

2.Cookielib

cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源。Cookielib模块非常强大,我们可以利用本模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送,比如可以实现模拟登录功能。该模块主要的对象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。

它们的关系:CookieJar —-派生—->FileCookieJar  —-派生—–>MozillaCookieJar和LWPCookieJar

1)获取Cookie保存到变量

首先,我们先利用CookieJar对象实现获取cookie的功能,存储到变量中,先来感受一下

我们使用以上方法将cookie保存到变量中,然后打印出了cookie中的值,运行结果如下

2)保存Cookie到文件

在上面的方法中,我们将cookie保存到了cookie这个变量中,如果我们想将cookie保存到文件中该怎么做呢?这时,我们就要用到

FileCookieJar这个对象了,在这里我们使用它的子类MozillaCookieJar来实现Cookie的保存

关于最后save方法的两个参数在此说明一下:

官方解释如下:

ignore_discard: save even cookies set to be discarded. 

ignore_expires: save even cookies that have expiredThe file is overwritten if it already exists

由此可见,ignore_discard的意思是即使cookies将被丢弃也将它保存下来,ignore_expires的意思是如果在该文件中cookies已经存在,则覆盖原文件写入,在这里,我们将这两个全部设置为True。运行之后,cookies将被保存到cookie.txt文件中,我们查看一下内容,附图如下

QQ截图20150215215136

 3)从文件中获取Cookie并访问

那么我们已经做到把Cookie保存到文件中了,如果以后想使用,可以利用下面的方法来读取cookie并访问网站,感受一下

设想,如果我们的 cookie.txt 文件中保存的是某个人登录百度的cookie,那么我们提取出这个cookie文件内容,就可以用以上方法模拟这个人的账号登录百度。

 4)利用cookie模拟网站登录

下面我们以我们学校的教育系统为例,利用cookie实现模拟登录,并将cookie信息保存到文本文件中,来感受一下cookie大法吧!

注意:密码我改了啊,别偷偷登录本宫的选课系统 o(╯□╰)o

以上程序的原理如下

创建一个带有cookie的opener,在访问登录的URL时,将登录后的cookie保存下来,然后利用这个cookie来访问其他网址。

如登录之后才能查看的成绩查询呀,本学期课表呀等等网址,模拟登录就这么实现啦,是不是很酷炫?

好,小伙伴们要加油哦!我们现在可以顺利获取网站信息了,接下来就是把网站里面有效内容提取出来,下一节我们去会会正则表达式!

转载请注明:静觅 » Python爬虫入门六之Cookie的使用

喜欢 (861)or分享 (0)

我的个人微信公众号,联系我请直接在公众号留言即可~

扫码或搜索:进击的Coder

进击的Coder

微信公众号 扫一扫关注

想结交更多的朋友吗?

来进击的Coder瞧瞧吧

进击的Coder

QQ群号 99350970 立即加入

进击的Coder灌水太多?

这里是纯粹的技术领地

激进的Coder

QQ群号 627725766 立即加入

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(105)个小伙伴在吐槽
  1. Here is an excellent Weblog You may Obtain Fascinating that we Encourage You
    versace2018-11-17 22:30 (11小时前)回复
  2. we like to honor several other world-wide-web sites around the web, even if they arent linked to us, by linking to them. Underneath are some webpages really worth checking out
    burberry2018-11-17 08:58 (1天前)回复
  3. Does your website have a contact page? I'm having trouble locating it but, I'd like to send you an e-mail. I've got some creative ideas for your blog you might be interested in hearing. Either way, great site and I look forward to seeing it improve over time.
    Sling TV2018-11-15 13:32 (3天前)回复
  4. What's up everyone, it's my first pay a quick visit at this website, and piece of writing is genuinely fruitful for me, keep up posting these types of posts.
    Sling TV2018-11-14 23:44 (3天前)回复
  5. Admiring the hard work you put into your site and detailed information you offer. It's awesome to come across a blog every once in a while that isn't the same outdated rehashed information. Wonderful read! I've saved your site and I'm adding your RSS feeds to my Google account.
  6. the time to read or visit the content material or internet sites we have linked to beneath the
    adam and eve challenge2018-11-12 22:40 (5天前)回复
  7. that is the end of this write-up. Right here you will obtain some websites that we believe youll appreciate, just click the links over
    cartesian to spherical equation2018-11-12 09:21 (6天前)回复
  8. Just desire to say your article is as astounding. The clarity in your post is just spectacular and i could assume you are an expert on this subject. Fine with your permission let me to grab your RSS feed to keep up to date with forthcoming post. Thanks a million and please keep up the rewarding work.
    Sling TV2018-11-11 01:01 回复
  9. check below, are some absolutely unrelated web sites to ours, on the other hand, they are most trustworthy sources that we use
    dolce and gabbana2018-11-10 19:42 回复
  10. here are some hyperlinks to websites that we link to simply because we assume they may be really worth visiting
  11. Does your blog have a contact page? I'm having trouble locating it but, I'd like to shoot you an email. I've got some recommendations for your blog you might be interested in hearing. Either way, great site and I look forward to seeing it grow over time.
    Quest Bars2018-11-09 21:20 回复
  12. 博主你好,在使用你的代码学习时,发现贵校教务系统网址http://jwxt.sdu.edu.cn:7890/pls/wwwbks/bks_login2.login 模拟登陆时编译器报urlerror,浏览器中直接输入该地址也发现其不存在,请问这个网址怎么回事?已经关闭了吗?
    曹天旸2018-11-07 23:00 回复
  13. I am regular reader, how are you everybody? This post posted at this website is in fact nice.
    quest bars cheap2018-11-04 03:11 回复
  14. This website really has all the information and facts I needed about this subject and didn't know who to ask.
    descargar facebook2018-11-03 10:20 回复
  15. Descargar facebook I used to be suggested this blog by means of my cousin. I'm now not positive whether or not this put up is written through him as no one else recognise such detailed approximately my problem. You are wonderful! Thank you! Descargar facebook
1 5 6 7