以前爬虫用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,这样下次就不需要重新发送登录请求了。

完整代码如下:

  

转载于:https://www.cnblogs.com/ljfight/p/6030596.html

基于python的request库,模拟登录csdn博客相关推荐

  1. 图解基于 Node.js 实现前后端分离 - CSDN博客

    因为会上出了个意外,ppt图片全部丢失,只好对着白板跟大家交流了半个多小时.由于我做演讲不喜欢写太多的文字,没有图片的情况下讲漏了一些内容.这篇文章是我在会上分享内容对照ppt进行地整理. 基本介绍 ...

  2. python爬虫教程:基于python框架Scrapy爬取自己的博客内容过程详解

    前言 python中常用的写爬虫的库常有urllib2.requests,对于大多数比较简单的场景或者以学习为目的,可以用这两个库实现.这里有一篇我之前写过的用urllib2+BeautifulSou ...

  3. python实战系列之爬取CSDN博客之星2020年度排名情况(附源码)

    前言 CSDN2020年度博客之星马上就要收尾了,你知道自己关注的博主排名实时变化吗?谁是你心目中的博客之星,让我们爬取各位博主的排名及各位博主的一些个人信息. 代码 直接上代码 # -*- codi ...

  4. Python爬虫:通过爬取CSDN博客信息,学习lxml库与XPath语法

    目录 lxml库 lxml基本用法 解析XML文件 解析HTML文件 XPath 什么是XPath XPath语法 XPath实战 选取某节点的所有子孙节点 选取某节点的所有子节点 通过属性选取某节点 ...

  5. CSDN博客的创建及使用

    文章目录 一.创建CSDN博客详细流程 1. 注册 2. 绑定手机 二.编辑和发布博客 1. 设置markdown格式 2. 发布文章 3. 常见的markdown语法 3.1 分级标题 3.2 目录 ...

  6. Node.js批量刷CSDN博客访问量

    在我的系列文章Node.js文章中的Node.js爬虫技术中介绍了爬取我的博客文章列表. 在那里我们用到了request和cheerio.这里我只需要使用request就可以批量刷CSDN博客的访问量 ...

  7. CSDN 博客栏目添加微博一键关注

    方法一(推荐方法二.比较炫): 第一步:打开页面(http://open.weibo.com/widget/bulkfollow.php)点击打开链接 第二步:按照里面的条件设置,填写需要关注的微博的 ...

  8. python requests模拟登录淘宝购物车下单_Python使用requests库模拟登录淘宝账号(上)...

    学好Python这款编程语言,我们能够设计出很多程序要帮助我们完成数据采集等工作,ET代理今天要跟大家介绍如何用Python模拟登录淘宝账号? 看了下网上有很多关于模拟登录淘宝,但是基本都是使用scr ...

  9. python如何安装wordcloud_基于python的wordcloud库的安装方法

    基于python的wordcloud是最近十分流行的一项技术,而在学习这门技术之前,一定要学会安装.下面给大家介绍一下wordcloud的安装步骤. Tip: python第三方组件有很多都是whl文 ...

最新文章

  1. R语言使用magick包的image_border函数和image_background函数自定义图像的边界和背景(Change image border and background)
  2. IntelliJ IDEA 安装问题解决
  3. python关键字列表的表达式,python 列表推导和生成器表达式的使用
  4. 雷死人不偿命-----六年级小学生的字条
  5. basys2数码管共阳还是共阴_数据选择器Multiplexer || 数码管动态显示 ||实现逻辑函数 || 重难考点 || 数电...
  6. HTML5 API详解(3):为何网页上要增加Battery电池状态API
  7. windows7安装com口驱动_windows7系统u盘插电脑没有反应的解决方法
  8. Angular 响应式表单 patchValue和setValue
  9. 安装inotify-tools监控工具
  10. 参加香港亚洲秋季电子展经验点滴拾遗
  11. 蓝屏dump分析教程,附分析工具WinDbg
  12. 综合评价法——秩和比(RSR)
  13. 结对开发石家庄地铁查询系统
  14. python自动化测试面试题None is ==详解
  15. 任务卡_05-数据库_-MySql 高级任务
  16. 微服务架构设计总结实践篇,10 步搭建微服务
  17. win10内存占用过高解决方案
  18. 如何使用飞秋FeiQ实现两电脑通信(或传输文件)
  19. 刁肥宅手笔:纯C语言实现链式队列的相关操作
  20. 网络的FIN_WAIT_2状态解释和分析

热门文章

  1. 鸡蛋中营养和脂质含量与降低LDL的食物
  2. sas university edition在ubuntu中的使用
  3. ./configure: error: the HTTP gzip module requires the zlib library.
  4. 不要再次进行阅读的计算机论文与理由(持续更新中)
  5. 饱和非线性(saturating nonlinearities)和非饱和非线性(non-saturating nonlinearities)的区别(转载)
  6. CentOS7: How to resolve curl#56 - Recv failure: Connection reset by peer
  7. 华为平板解锁工具_2020年备战考研必选8款平板电脑 平板电脑推荐(12月最新版)...
  8. Cacti auth.php,Cacti微信企业号图文报警
  9. 图形系统中的仿射变换
  10. linux 下的microsoft to do软件(Ao)