python爬虫怎么登录_Python爬虫基础-模拟登陆
为什么我们要让爬虫模拟登陆呢?有些内容只有登陆才能进行爬取,如知乎,不登录的主页只能看到注册和登陆 ;
你想爬取自己的个人信息
有什么方法呢?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爬虫基础-模拟登陆相关推荐
- python 裁判文书网_python - 用selenium模拟登陆裁判文书网,系统报错找不到元素。...
问 题 from selenium import webdriver from selenium.webdriver.common.desired_capabilities import Desire ...
- python爬虫淘宝登录_python爬虫实现模拟淘宝登录
就算所有人都不支持你.这条路会很曲折,你也会一度认为是不是自己选错了,但只要坚持,就算最后没有成功,但努力了就不会有遗憾. python爬虫模拟淘宝登录 小贴士 这个爬虫和搜索引擎的爬虫是有区别的.搜 ...
- python post 登录_Python爬虫之模拟post登陆及get登陆
一.模拟登陆需要账号,密码的网址 一些不需要登陆的网址操作已经试过了,这次来用Python尝试需要登陆的网址,来利用cookie模拟登陆 由于我们教务系统有验证码偏困难一点,故挑了个软柿子捏,赛氪,赛 ...
- python爬虫知识大全_Python爬虫入门有哪些基础知识点
1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...
- python爬虫酷狗_python爬虫教程:爬取酷狗音乐,零基础小白也能爬取哦
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...
- python爬去新浪微博_Python 爬虫如何机器登录新浪微博并抓取内容?
啊喂,你们不要只收藏不点赞啊 = = 稍微更新一下,多说两句. 虽然爬取移动端比较简单,但是爬一点难的东西对身体好对吧. 总结一下这个模拟登陆涉及的东西: 1.用户名经过base64加密. 2.输入用 ...
- python爬取网页内容_Python爬虫原理解析
笔者公众号:技术杂学铺 笔者网站:mwhitelab.com 本文将从何为爬虫.网页结构.python代码实现等方面逐步解析网络爬虫. 1. 何为爬虫 如今互联网上存储着大量的信息. 作为普通网民,我 ...
- python爬虫requests库_python爬虫使用Requests库 - pytorch中文网
在入门教程中我们介绍了urllib库和urllib2的用法,同时我们了解一些爬虫的基础以及对爬虫有了基本的了解.其实在我们生产环境中,使用Request库更加方便与实用,同时我们这需要短短的几行代码就 ...
- python如何解析网页_Python爬虫入门第一课:如何解析网页
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于肥宅与画家 ,作者AntzUhl 我们编写网络爬虫最主要的目 ...
最新文章
- 68-95-99规则–以普通英语解释正态分布
- C#中字节数组与字符串的来回转换
- [教程] [承風雅傳HSU]用ES4封裝Win7---ES4 Win7封裝教程(未完待續)
- strcpy 通过指针复制字符串出错问题
- STM32 之七 备份域(备份寄存器、备份SRAM)详解及数据丢失问题处理
- ChannelInitializer 的添加
- [react] 在React中如何引入图片?哪种方式更好?
- Python天天美味(23) - enumerate遍历数组
- python程序设计试题库_最新《Python程序设计》试题库资料
- vscode上传GitHub
- 《大数据——大价值、大机遇、大变革》试读
- 【Analytics Kit】【FAQ】集成华为分析服务问题集合 SDK初始化失败/应用调试界面没有数据/常见错误提示
- Tampermonkey油猴脚本安装及入门
- (超全)全面手动清理c盘的的步骤
- matlab插值与拟合例题_[转载]MATLAB插值与拟合(1)
- 按关键字自动分类文件
- 单龙芯3A3000-7A1000PMON研究学习-(23)撸起袖子干-分析代码前的准备工作5
- 高等数学:第八章 多元函数的微分法及其应用(6)微分法在几何上的应用
- Linux 4G模块pppd拨号上网脚本解析
- php readystate,php – 当readyState为4时,为什么我在脚本中调用的Ajax函数连续运行两次?...
热门文章
- 会议论文分享-FSE20-基于学习的状态修剪策略
- 虹科案例 | 用AR进行建筑规划,这家公司竟已“走近”了元宇宙?
- UBUNTU安装deepin-wine、QQ、微信等
- 华为电脑linux怎么连接鼠标,华为无线鼠标怎么连接电脑 华为无线鼠标如何连接电脑...
- 程序设计题:小学 100 以内正整数加减运算
- 【自我提升】openCV基本操作
- C语言中的几种排序算法
- 名编辑电子杂志大师教程 | 批量转换PDF为电子杂志
- 【转载】前向和后向欧拉方法
- Linux操作系统 清华大学出版社第六章实验题个人见解