对于一个网站的首页来说,它可能需要你进行登录,比如知乎,同一个URL下,你登录与未登录当然在右上角个人信息那里是不一样的。

(登录过)

(未登录)

那么你在用爬虫爬取的时候获得的页面究竟是哪个呢?

肯定是第二个,不可能说你不用登录就可以访问到一个用户自己的主页信息,那么是什么让同一个URL在爬虫访问时出现不同内容的情况呢?

在第一篇中我们提到了一个概念,cookie,因为HTTP是无状态的,所以对方服务器并不知道这次请求到底来自于谁,就好像突然你收到了一封信,上面让你给他寄一些东西,但是信上却没有他的联系方式。

在HTTP中也是如此,我们普通的请求都类似于匿名信,而cookie的出现,就是让这封信上盖上了你自己的名字。

在请求时附带上你的cookie,服务器放就会知道这次请求来自于谁,然后你点击个人信息页,服务器就知道是要返回这个cookie对应的用户的信息页了。

在谷歌浏览器中,你可以在控制台Application里面找到当前网站的所有cookie键值对。一般来说用于确认你个人信息的只有一个键值对,但是你也可以把所有的都用上,并不能保证对方服务器是不是对某些键值对也进行检查了。

很多网站在你没有登录的情况下并不会给过多的数据让你看,所以你的爬虫需要进行一次模拟登录。

模拟登录需要从一个网站的登录界面开始,因为我们要在这里用爬虫发送post请求附带账号密码来登录对方网站。

拿人人网来举例。

人人网登录地址:http://www.renren.com/

对Python感兴趣或者是正在学习的小伙伴,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,教你如何实现边学习边用Python赚钱的学习方式。点击加入我们的 python学习者聚集地

打开控制台,我们可以先尝试观察一次登录的网络请求。很容易就能在里面找到一个/login的POST请求,登录的请求都会是POST,因为GET请求的参数会放在URL上,很容易被人拦截看到你的账号密码。

在表单参数中,我们需要注意的就只有email,password和rkey了,其他的照填即可。

email是我们的账号名,可以是邮箱也可以是电话号。

password是密码,这个密码明显是加密过的,对于这种情况,我们在请求时也要用同样的算法对密码进行加密,但是我们如何知道对方采用了什么加密算法呢?

这种情况大多数你都可以在控制台sources里面找到,在这里你可以找到网站加载过的所有文件,而加密算法一般会在js文件中。

sources里面很明显有一个叫login.js的文件,那么它一定和登录有关系,因为在sources里面打开js太难看了,会缩成一行,所以我就在控制台打开它了。

根据password定位到这里。

可以找到关于登录时密码加密的算法,顺便一提,人人网这个login.js的函数命名真的是没救了,abcd…xyz用了个遍,不知道是为了恶心自己人还是恶心别人写爬虫分析它这个login。但是很遗憾的是人人网给爬虫留下了一个很方便的登录途径,我们甚至可以不用自己加密密文!!!

虽然说这里可以不用自己转义加密算法了,但是其实很多网站并不会像人人网这样暴露出一个action的do事件让我们可以直接调用的,所以最好还是掌握一些密文加密的那部分。

再来看人人网暴露出的爬虫便捷登录的接口。

我们只需要调用这个do即可完成登录。

也就是说,我们模拟这个form来完成请求,在请求前,我们需要把信息装填到form中。

先安装scrapy依赖

pip install scrapy

在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
import scrapy
url = "http://www.renren.com/PLogin.do"
data = {"email": "xxxxx", "password": "xxxxx"}
response = scrapy.FormRequest(url,formdata=data,callback=self.parse_page)

登录成功之后,我们就可以从response中拿到cookie,然后在之后的请求中都附带上cookie,这样对方服务器就知道我们是谁了。

如果之前在网页登录失败次数过多,可能会导致爬虫模拟登录需要验证码,而此处是考虑不需要验证码的情况,所以可能会登录失败,解决方法可以是清理本机Cookie。

Python网络爬虫实战(四)模拟登录相关推荐

  1. python爬虫文件代码大全-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)...

    WechatSogou[1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典.[1]: https://github ...

  2. python常用代码大全-Python 网络爬虫实战项目代码大全

    原标题:Python 网络爬虫实战项目代码大全 DouBanSpider 豆瓣读书的爬虫.你可以爬豆瓣读书下面标签下的所有图书,按评分排名依次存储,存储到Excel中,可方便大家筛选搜罗,比如筛选评价 ...

  3. python基础代码大全-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)

    WechatSogou[1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典.[1]: https://github ...

  4. Python 网络爬虫实战:猫眼电影 38950 条评论数据告诉你《无名之辈》是否值得一看?

    11月16日,一部无流量明星.无大制作.无大IP的"三无"国产电影<无名之辈>上映后,竟然连续打败了超级英雄"毒液".会魔法的"神奇动物& ...

  5. Python网络爬虫实战项目代码大全(长期更新,欢迎补充)

    Python网络爬虫实战项目代码大全(长期更新,欢迎补充) 阿橙 · 1 个月内 WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫, ...

  6. python商业爬虫教程_廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程...

    廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程 1.JPG (53.51 KB, 下载次数: 1) 2019-8-9 08:15 上传 2.JPG ...

  7. [day2]python网络爬虫实战:爬取美女写真图片(增强版)

    l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.实现 1.分析url格 ...

  8. Python网络爬虫实战案例之:7000本电子书下载(2)

    一.前言 本文是<Python开发实战案例之网络爬虫>的第二部分:7000本电子书下载网络爬虫开发环境安装部署.配套视频课程详见网易云课堂 二.章节目录 (1)Python开发环境依赖 ( ...

  9. python基础实例 韦玮 pdf_韦玮:Python网络爬虫实战解析

    2016年12月27日晚8点半,CSDN特邀IT专家.<Python系列实战教程>系列图书作者韦玮带来了主题为"Python网络爬虫反爬破解策略实战"的Chat交流.以 ...

最新文章

  1. 满园尽是503,记曾经的一次IIS 7性能考验
  2. 基于silverlight4(beta)的摄像头应用(Beta2)发布
  3. hive 行转列和列转行的方法_读离线和实时大数据开发实战,为你揭开 Hive 优化实践的神秘面纱...
  4. Linear Regression Example
  5. 高德地图api接口文档_在 R 语言里面调用高德地图接口:地理编码与路径规划
  6. android r.java 原理,深入理解Android消息处理系统原理
  7. 如何使用Avira Rescue CD清洁感染的PC
  8. 最大连续子数组和与JUnit测试
  9. IntelliJ IDEA for Mac 如何设置 tab 键为 4 个空格?
  10. 梯度下降法快速教程 | 第三章:学习率衰减因子(decay)的原理与Python实现
  11. 创业人永远不要让工作成为自己的负担
  12. python将对象放入列表根据某个属性排升序_python实现对象列表根据某个属性排序的方法详解...
  13. 拓端tecdat|Python信贷风控模型:梯度提升Adaboost,XGBoost,SGD, GBOOST, SVC,随机森林, KNN预测金融信贷违约支付和模型优化
  14. Sublime Text 3 插件和python环境
  15. 工具WinRunner 及Bochs
  16. 51单片机+DS18B20+LCD1602显示+Proteus仿真
  17. 开场PPT动画怎么做炫酷
  18. 不小心将项目的 iml文件删除了怎么办
  19. java初学者看什么书比较好
  20. 魏晋名士:骂人都不带脏字

热门文章

  1. 边缘检测 Hough变换 轮廓提取 种子填充 轮廓跟踪
  2. GD32实战11__SPI FLASH
  3. 电路图中的那些类似于箭头的是什么意思?
  4. 【福利季】《手机历史漫谈》
  5. 跨境电商平台大全,总有一个适合你
  6. python爬取京东手机参数_python爬取京东手机价格
  7. 法和法律的概念、法的本质和特征(国家意志性、强制性 、利导性 、规范性)、法的形式 (宪法、法律、行政法规、地方性法规、自治法规、特别行政区法律、行政规章、国际条约)、法的分类(成文法和不成文法..)
  8. CTFSHOW新手杯MISC部分WriteUp
  9. Android应用程序icon规范
  10. 【单镜头反光相机】相机与小孔成像