zoukankan      html  css  js  c++  java
  • 基于python的request库,模拟登录csdn博客

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

    安装requests库

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

    快速上手的小例子

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

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

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

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

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

    模拟登录csdn

    我们需要其他的辅助工具

    浏览器: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,这样下次就不需要重新发送登录请求了。

    完整代码如下:

      

  • 相关阅读:
    软工作业02
    进行代码复审训练
    源代码管理工具调查
    软工作业PSP与单元测试训练【任务一】
    15软工 15100340
    进行代码复审训练
    源代码管理工具调查
    软工作业PSP与单元测试训练
    软工课后作业001
    20180320作业2:进行代码复审训练
  • 原文地址:https://www.cnblogs.com/ljfight/p/6030596.html
Copyright © 2011-2022 走看看