为什么我们要让爬虫模拟登陆呢?有些内容只有登陆才能进行爬取,如知乎,不登录的主页只能看到注册和登陆 ;

你想爬取自己的个人信息

有什么方法呢?cookie

在互联网发展的早期,由于大家的服务器都不是太好,所以服务端不会记住你的个人信息,这会增加服务器的压力。因此早期的连接都是一次性的,服务器在不会记得你什么时候来过,也不知道你做了什么。但是随着服务器的升级换代,淘宝这类网站需要记住你的个人信息,这样你下次访问的时候可以继续上次的工作。但是http协议依旧保持了无状态的特性,cookies应运而生。cookies在访问服务器后会记录在浏览器上,这样就可以在客户端下次访问的时候想起它是谁了。

HTTP持久连接

在没有持久连接之前,为获取每一个URL指定的资源都必须建立一个独立额TCP连接,一方面加重了HTTP服务器的负担;另一方面由于服务器不会记住客服端,导致我们需要每一个请求都要执行登录操作。但是有了HTTP持久连接后,我们对同一个主机的多次请求会使用同一个TCP连接。因此登录后就可以保持这类状态进行请求操作。

实现方法!

针对方法1,我们只要从在浏览器获取cookie,然后带着cookie进行访问就行了,如下:利用chrome的开发者工具获取cookies

获取cookies

填写cookies cookies = {'cookie':'红框部分'}

带cookies发起请求:html = requests.get(url,cookies=cookies).content

针对方法2,我们使用requests的Session类进行持久连接,就直接上代码了哦#导入必要的库import requestsfrom bs4 import BeautifulSoup

url = 'https://www.zhihu.com/#signin'session = requests.Session() #实例化Sessionwb_data = session.get(url).text

soup = BeautifulSoup(wb_data,'lxml')# 填写登录表单xsrf = soup.select('input[value]')[-1].get('value')

data = {    '_xsrf': xsrf,    'password': 'your password',    'remember_me': 'true',    'email': 'your email'}# 提交表单log_post =session.post('http://www.zhihu.com/login/email', data=data)

url = 'https://www.zhihu.com/'test = session.get(url)

wb_data = BeautifulSoup(test.text, 'lxml')# 检验是否成功登录wb_data.select('#feed-0 > div.feed-item-inner > div.feed-main > div.feed-content > h2 > a')

结语

HTTP持久链接和Cookies其实没有冲突,虽然我说是两种方法,但是你可以在使用cookies免提交表单登陆的时使用Session,这样只需要第一次get的时候带上cookies,剩余操作就不需要cookies了。

但是我使用cookies发现还是不能变成登陆状态,我也是很忧伤。但是你可以在模拟登陆后,然后取得cookies信息,用获得的cookies登陆,不过这就失去用cookie免登陆的价值了。

当我用jupyter notebook发现无法使用cookie让服务器认识我,当我用命令行时候,同样的代码反而没有问题,我无奈了。

作者:hoptop

链接:https://www.jianshu.com/p/d5c67999288f

python爬虫怎么登录_Python爬虫基础-模拟登陆相关推荐

  1. python 裁判文书网_python - 用selenium模拟登陆裁判文书网,系统报错找不到元素。...

    问 题 from selenium import webdriver from selenium.webdriver.common.desired_capabilities import Desire ...

  2. python爬虫淘宝登录_python爬虫实现模拟淘宝登录

    就算所有人都不支持你.这条路会很曲折,你也会一度认为是不是自己选错了,但只要坚持,就算最后没有成功,但努力了就不会有遗憾. python爬虫模拟淘宝登录 小贴士 这个爬虫和搜索引擎的爬虫是有区别的.搜 ...

  3. python post 登录_Python爬虫之模拟post登陆及get登陆

    一.模拟登陆需要账号,密码的网址 一些不需要登陆的网址操作已经试过了,这次来用Python尝试需要登陆的网址,来利用cookie模拟登陆 由于我们教务系统有验证码偏困难一点,故挑了个软柿子捏,赛氪,赛 ...

  4. python爬虫知识大全_Python爬虫入门有哪些基础知识点

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

  5. python爬虫酷狗_python爬虫教程:爬取酷狗音乐,零基础小白也能爬取哦

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...

  6. python爬去新浪微博_Python 爬虫如何机器登录新浪微博并抓取内容?

    啊喂,你们不要只收藏不点赞啊 = = 稍微更新一下,多说两句. 虽然爬取移动端比较简单,但是爬一点难的东西对身体好对吧. 总结一下这个模拟登陆涉及的东西: 1.用户名经过base64加密. 2.输入用 ...

  7. python爬取网页内容_Python爬虫原理解析

    笔者公众号:技术杂学铺 笔者网站:mwhitelab.com 本文将从何为爬虫.网页结构.python代码实现等方面逐步解析网络爬虫. 1. 何为爬虫 如今互联网上存储着大量的信息. 作为普通网民,我 ...

  8. python爬虫requests库_python爬虫使用Requests库 - pytorch中文网

    在入门教程中我们介绍了urllib库和urllib2的用法,同时我们了解一些爬虫的基础以及对爬虫有了基本的了解.其实在我们生产环境中,使用Request库更加方便与实用,同时我们这需要短短的几行代码就 ...

  9. python如何解析网页_Python爬虫入门第一课:如何解析网页

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于肥宅与画家 ,作者AntzUhl 我们编写网络爬虫最主要的目 ...

最新文章

  1. 68-95-99规则–以普通英语解释正态分布
  2. C#中字节数组与字符串的来回转换
  3. [教程] [承風雅傳HSU]用ES4封裝Win7---ES4 Win7封裝教程(未完待續)
  4. strcpy 通过指针复制字符串出错问题
  5. STM32 之七 备份域(备份寄存器、备份SRAM)详解及数据丢失问题处理
  6. ChannelInitializer 的添加
  7. [react] 在React中如何引入图片?哪种方式更好?
  8. Python天天美味(23) - enumerate遍历数组
  9. python程序设计试题库_最新《Python程序设计》试题库资料
  10. vscode上传GitHub
  11. 《大数据——大价值、大机遇、大变革》试读
  12. 【Analytics Kit】【FAQ】集成华为分析服务问题集合 SDK初始化失败/应用调试界面没有数据/常见错误提示
  13. Tampermonkey油猴脚本安装及入门
  14. (超全)全面手动清理c盘的的步骤
  15. matlab插值与拟合例题_[转载]MATLAB插值与拟合(1)
  16. 按关键字自动分类文件
  17. 单龙芯3A3000-7A1000PMON研究学习-(23)撸起袖子干-分析代码前的准备工作5
  18. 高等数学:第八章 多元函数的微分法及其应用(6)微分法在几何上的应用
  19. Linux 4G模块pppd拨号上网脚本解析
  20. php readystate,php – 当readyState为4时,为什么我在脚本中调用的Ajax函数连续运行两次?...

热门文章

  1. 会议论文分享-FSE20-基于学习的状态修剪策略
  2. 虹科案例 | 用AR进行建筑规划,这家公司竟已“走近”了元宇宙?
  3. UBUNTU安装deepin-wine、QQ、微信等
  4. 华为电脑linux怎么连接鼠标,华为无线鼠标怎么连接电脑 华为无线鼠标如何连接电脑...
  5. 程序设计题:小学 100 以内正整数加减运算
  6. 【自我提升】openCV基本操作
  7. C语言中的几种排序算法
  8. 名编辑电子杂志大师教程 | 批量转换PDF为电子杂志
  9. 【转载】前向和后向欧拉方法
  10. Linux操作系统 清华大学出版社第六章实验题个人见解