基于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,这样下次就不需要重新发送登录请求了。
完整代码如下:
转载于:https://www.cnblogs.com/ljfight/p/6030596.html
基于python的request库,模拟登录csdn博客相关推荐
- 图解基于 Node.js 实现前后端分离 - CSDN博客
因为会上出了个意外,ppt图片全部丢失,只好对着白板跟大家交流了半个多小时.由于我做演讲不喜欢写太多的文字,没有图片的情况下讲漏了一些内容.这篇文章是我在会上分享内容对照ppt进行地整理. 基本介绍 ...
- python爬虫教程:基于python框架Scrapy爬取自己的博客内容过程详解
前言 python中常用的写爬虫的库常有urllib2.requests,对于大多数比较简单的场景或者以学习为目的,可以用这两个库实现.这里有一篇我之前写过的用urllib2+BeautifulSou ...
- python实战系列之爬取CSDN博客之星2020年度排名情况(附源码)
前言 CSDN2020年度博客之星马上就要收尾了,你知道自己关注的博主排名实时变化吗?谁是你心目中的博客之星,让我们爬取各位博主的排名及各位博主的一些个人信息. 代码 直接上代码 # -*- codi ...
- Python爬虫:通过爬取CSDN博客信息,学习lxml库与XPath语法
目录 lxml库 lxml基本用法 解析XML文件 解析HTML文件 XPath 什么是XPath XPath语法 XPath实战 选取某节点的所有子孙节点 选取某节点的所有子节点 通过属性选取某节点 ...
- CSDN博客的创建及使用
文章目录 一.创建CSDN博客详细流程 1. 注册 2. 绑定手机 二.编辑和发布博客 1. 设置markdown格式 2. 发布文章 3. 常见的markdown语法 3.1 分级标题 3.2 目录 ...
- Node.js批量刷CSDN博客访问量
在我的系列文章Node.js文章中的Node.js爬虫技术中介绍了爬取我的博客文章列表. 在那里我们用到了request和cheerio.这里我只需要使用request就可以批量刷CSDN博客的访问量 ...
- CSDN 博客栏目添加微博一键关注
方法一(推荐方法二.比较炫): 第一步:打开页面(http://open.weibo.com/widget/bulkfollow.php)点击打开链接 第二步:按照里面的条件设置,填写需要关注的微博的 ...
- python requests模拟登录淘宝购物车下单_Python使用requests库模拟登录淘宝账号(上)...
学好Python这款编程语言,我们能够设计出很多程序要帮助我们完成数据采集等工作,ET代理今天要跟大家介绍如何用Python模拟登录淘宝账号? 看了下网上有很多关于模拟登录淘宝,但是基本都是使用scr ...
- python如何安装wordcloud_基于python的wordcloud库的安装方法
基于python的wordcloud是最近十分流行的一项技术,而在学习这门技术之前,一定要学会安装.下面给大家介绍一下wordcloud的安装步骤. Tip: python第三方组件有很多都是whl文 ...
最新文章
- R语言使用magick包的image_border函数和image_background函数自定义图像的边界和背景(Change image border and background)
- IntelliJ IDEA 安装问题解决
- python关键字列表的表达式,python 列表推导和生成器表达式的使用
- 雷死人不偿命-----六年级小学生的字条
- basys2数码管共阳还是共阴_数据选择器Multiplexer || 数码管动态显示 ||实现逻辑函数 || 重难考点 || 数电...
- HTML5 API详解(3):为何网页上要增加Battery电池状态API
- windows7安装com口驱动_windows7系统u盘插电脑没有反应的解决方法
- Angular 响应式表单 patchValue和setValue
- 安装inotify-tools监控工具
- 参加香港亚洲秋季电子展经验点滴拾遗
- 蓝屏dump分析教程,附分析工具WinDbg
- 综合评价法——秩和比(RSR)
- 结对开发石家庄地铁查询系统
- python自动化测试面试题None is ==详解
- 任务卡_05-数据库_-MySql 高级任务
- 微服务架构设计总结实践篇,10 步搭建微服务
- win10内存占用过高解决方案
- 如何使用飞秋FeiQ实现两电脑通信(或传输文件)
- 刁肥宅手笔:纯C语言实现链式队列的相关操作
- 网络的FIN_WAIT_2状态解释和分析
热门文章
- 鸡蛋中营养和脂质含量与降低LDL的食物
- sas university edition在ubuntu中的使用
- ./configure: error: the HTTP gzip module requires the zlib library.
- 不要再次进行阅读的计算机论文与理由(持续更新中)
- 饱和非线性(saturating nonlinearities)和非饱和非线性(non-saturating nonlinearities)的区别(转载)
- CentOS7: How to resolve curl#56 - Recv failure: Connection reset by peer
- 华为平板解锁工具_2020年备战考研必选8款平板电脑 平板电脑推荐(12月最新版)...
- Cacti auth.php,Cacti微信企业号图文报警
- 图形系统中的仿射变换
- linux 下的microsoft to do软件(Ao)