基于python的request库,模拟登陆csdn博客

      之前爬虫用urllib2来实现,也用过scrapy的爬虫框架,此次试试requests,刚开始用,用起来确实比urllib2好,封装的更好一些,使用起来简单方便不少。chrome

安装requests库浏览器

    最简便的方法就是使用pip来安装:pip install requests;若是须要安装特定版本,则在后面加上版本号便可:pip install requests == 1.9.7,这样就搞定了。cookie

快速上手的小例子框架

下面说一个最简单的例子:scrapy

 

第一行,引入requests库,这是必然的。工具

第二行,经过get方法获取百度首页的内容。post

第三行,把返回的response内容,输出出来。优化

果真很简单,这样就能够发送一个get请求,同理,也可使用requests.post,requests.put,requests.options,requests.head,发送请求。网站

模拟登陆csdnurl

咱们须要其余的辅助工具

浏览器:Firefox

浏览器插件:tamper data,firebug

咱们须要tamper data来拦截请求,由于chrome没有这个功能的插件,因此这个只能使用firefox来作(除了拦截请求chrome没有,其余的工做均可以使用chrome)。

分析登陆过程

1.打开登陆页面

咱们首先打开csdn的登陆页面:https://passport.csdn.net/account/login?ref=toolbar,这个连接,前面的部分是登陆的网址,问号后面的参数,referer,就是你从哪里跳过来的,也许是一个页面跳转到登陆的,toolbar就是我本身点击顶部导航栏,而后跳转到登陆页面的。

2.清除相关的cookie

为了清除没必要要的干扰,咱们先清除掉全部的相关的cookie,这样方便咱们分析哪些参数是必须的。

3.登陆过程分析

清除了cookie后,咱们刷新一下页面,https://passport.csdn.net/account/login?ref=toolbar,从新获取对应的cookie。

而后咱们就开始用tamper data来拦截请求。

咱们点击start tamper ,在网页中填写用户名和密码,点击“登陆”,会发出一个请求,而后tamper data 会拦截下这个请求,询问咱们是否拦截,点击tamper,咱们能够在这个请求提交以前,查看请求的内容,还能够作删除。

发送一个登陆表单过去,就登陆成功了。

4.开始模拟登陆

知道登陆过程了,咱们就开始写登陆的代码。

至此,登陆就成功了。

5.优化

当你登陆成功后,你会问,我怎么知道登陆成功了呢?当你试图去抓取http://write.blog.csdn.net/postlist的内容的时候,你会发现一个403的错误,这是为啥呢?

很简单,user agent没有修改,咱们用的是默认的user agent这不是一个正常的用户,因此被网站拒绝了。咱们加上它就行了:

后话

咱们都知道cookie是有有效期的,在作调试时,每修改一次,就要模拟登陆一次,这样很差,咱们要保存cookie,这样下次就不须要从新发送登陆请求了。

完整代码以下:

相关文章
相关标签/搜索