python登录网页账号密码_遇到需要登录的网站怎么办?学好python,用这3招轻松搞定...

你好

由于你是游客

无法查看本文

请你登录再进

谢谢合作。。。。。

当你在爬某些网站的时候

需要你登录才可以获取数据

咋整?

莫慌

把这几招传授给你

让你以后从容应对

登录的常见方法无非是这两种

1、让你输入帐号和密码登录

2、让你输入帐号密码+验证码登录

今天

先跟你说说第一种

需要验证码的咱们下一篇再讲

第一招

Cookie大法

你平常在上某个不为人知的网站的时候

是不是发现你只要登录一次

就可以一直看到你想要的内容

过了一阵子才需要再次登录

这就是因为 Cookie 在做怪

简单来说

就是每一个使用这个网站的人

服务器都会给他一个 Cookie

那么下次你再请求数据的时候

你顺带把这个 Cookie 传过去

服务器一看

诶,小伙子是老客户啊

有登录过

直接返回数据给他吧

在服务中还可以设置 Cookie 的有效时间

也就是说

当你下次携带一个过期了的 Cookie 给服务器的时候

服务器虽然知道你是老客户

但是还是需要你重新再登录一次

然后再给你一个有效的 Cookie

Cookie 的时长周期是服务器那边定的

ok

了解了这一点之后

我们就来玩一下吧

我们以「逼乎」为例

https://biihu.cc/account/login/

输入地址之后

按一下 F12

点击 network 标签

然后登录你的帐号

然后点击其中一个

你就可以看到在 Request Headers 有你的 Cookie

有了 Cookie 之后

我们在代码中直接获取我的个人信息

import requests

headers = {

# 假装自己是浏览器

'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/73.0.3683.75 Chrome/73.0.3683.75 Safari/537.36',

# 把你刚刚拿到的Cookie塞进来

'Cookie': 'eda38d470a662ef3606390ac3b84b86f9; Hm_lvt_f1d3b035c559e31c390733e79e080736=1553503899; biihu__user_login=omvZVatKKSlcXbJGmXXew9BmqediJ4lzNoYGzLQjTR%2Fjw1wOz3o4lIacanmcNncX1PsRne5tXpE9r1sqrkdhAYQrugGVfaBICYp8BAQ7yBKnMpAwicq7pZgQ2pg38ZzFyEZVUvOvFHYj3cChZFEWqQ%3D%3D; Hm_lpvt_f1d3b035c559e31c390733e79e080736=1553505597',

}

session = requests.Session()

response = session.get('https://biihu.cc/people/wistbean%E7%9C%9F%E7%89%B9%E4%B9%88%E5%B8%85', headers=headers)

print(response.text)

运行后可以发现不用登录就可以直接拿到自己的个人信息了

第二招

表单请求大法

很简单

就是通过抓包

获取请求登录的时候需要用到的用户名密码参数

然后以表单的形式请求服务器

如果你细心一点的话应该会知道之前说过拉

具体在这

去看下

我就不多说了

第三招

Selenium 自动登录法

获取到两个输入框的元素

再获取到登录按钮

往输入框写你的帐号密码

然后自动点击一下登录

username = WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR, "帐号的selector")))

password = WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR, "密码的selector")))

submit = WAIT.until(EC.element_to_be_clickable((By.XPATH, '按钮的xpath')))

username.send_keys('你的帐号')

password.send_keys('你的密码')

submit.click()

登录完之后拿到 Cookie

cookies = webdriver.get_cookies()

有了 Cookie 你就可以拿到你想要的数据了,希望对你有帮助

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java用while循环语句输出1-100内的奇数和

java用while循环语句输出1-100内的奇数和 /*** 用while语句,输出0-100所有奇数和*/ public class Test04 {public static void main(String[] args) {int i 1; //定义变量时&#xff0c;尽量不要写成int i1,sum0;int sum 0; //养成一个好习惯while(i<100){if (i%…

如何成为一名与众不同的程序员?|面向思维做事

思维能力是比解决具体问题更重要的能力。问题也许各有不同&#xff0c;但思维方式可以复制和迁移。正所谓:"有道无术&#xff0c;术尚可求也&#xff0c;有术无道&#xff0c;止于术"。 引言 本书的首要目的就是打破“不知道自己不知道”的思维禁锢&#xff0c;把软件…

nofollow标签_nofollow标签是什么?如何使用

nofollow标签是什么可以这样来理解&#xff0c;我们做了一个网页&#xff0c;看到这个网页上有很多个链接&#xff0c;搜索引擎收录这个网页之后&#xff0c;这网页它有一定的权重&#xff0c;它就会来决定分配给这些链接各自的权重。nofollow标签是什么nofollow标签呢就是用来…

java输出1-100内的所有5的倍数,5个一行

java输出1-100内的所有5的倍数&#xff0c;5个一行 /*** 输出1-100内的所有5的倍数&#xff0c;5个一行*/ public class Test05 {public static void main(String[] args) {int i 1;int j 0; //j的初值为0,不是1&#xff1b;while(i<100){if (i%50) {System.out…

java从键盘输入一个数,并将其倒序输出

从键盘输入一个数&#xff0c;并将其倒序输出 import java.util.Scanner;/*** 从键盘上录入任意整数,倒叙输出*/ public class Test06 {public static void main(String[] args) {Scanner sc new Scanner(System.in);System.out.println("请输入一个整数&#xff1a;&qu…

python open函数_精选2个小例子,带你快速入门Python文件处理

阅读本文大概需要7分钟讲完了函数和模块&#xff0c;我们来讲一讲文件的使用,python对数据的处理分两种一种是本地文件的处理&#xff0c;另外一种是通过网络数据处理(也就是爬虫相关的).而本地的数据处理&#xff0c;主要是通过文件的读和写完成~~我们先想一想平时对文件处理一…

Java判断一个整数是否为水仙花数

判断一个整数是否为水仙花数 import java.util.Scanner;/*** 从键盘上输入一个数字&#xff0c;判断是不是水仙花数* <p>* 所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身* <p>* 例如&#xff1a;* 153 1*1*1 5*5*5 3*3*3 ;*/ public c…

mysql with as 用法_Python之图解with语句

在我们使用Python的时候&#xff0c;常使用到如下的代码块:# 文件读取 with open(file, r) as f:# CODE BLOCK ## 梯度计算 with tf.GradientTape() as g:# CODE BLOCK #在很多场景中&#xff0c;使用with语句来可以让我们可以更好地来管理资源和简化代码&#xff0c;它可以看做…

java实现从键盘上输入学生考试的科目和学生的每科分数,输出总分、最高分、最低分、平均分

java实现从键盘上输入学生考试的科目和学生的每科分数&#xff0c;输出总分、最高分、最低分、平均分 import java.util.Scanner;/*** 从键盘上输入学生考试的科目数和学生的每一科分数 输出总分、最高分、最低分、平均分*/ public class Test08 {public static void main(St…

aidl使用_Android进阶之AIDL如何使用自定义类型

如何在 AIDL 中使用自定义类型&#xff0c;具体步骤如下&#xff1a;创建自定义类型声明自定义类型定义与自定义类型相关的业务重写业务实体类远程调用验证 AIDL1. 创建自定义类型自定义类型传输的就是一个实体对象&#xff0c;这个实体类必须实现 Parcelable 接口&#xff0c;…

java判断一个整数是不是素数(质数)

java判断一个整数是不是素数&#xff08;质数&#xff09; /*** 判断一个数是不是素数&#xff08;质数&#xff09;* 质数是指在大于1的自然数中&#xff0c;除了1和它本身以外不再有其他因数的自然数。*/import java.util.Scanner;public class Test09 {public static void …

mysql获取时间戳_服了!阿里Mysql三位封神专家总结1200多页性能优化的千金良方...

MYSQL&#xff08;关系型数据库管理系统&#xff09;MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Relatio…

java输出1-100之间的全部素数

java输出1-100之间的全部素数 public class Test10 {public static void main(String[] args) {int i 2;while (i < 100) {int num 2;boolean flag true;while (num < i) {if (i % num 0) {flag false;}num;}if (flag) {System.out.print(i"\t");}i;}} }…

java生成指定范围的随机数

java生成指定范围的随机数 /*** 如何在程序中生成指定范围的随机数** 生成23-59之间的随机数*/ public class Test11 {public static void main(String[] args) {/*** Math.random() 生成&#xff08;0,1&#xff09;之间的小数&#xff0c;不包括0和1* 所以生成23-59之间的随…

linux cached释放_正点原子Linux第四十一章嵌入式Linux LED驱动开发实验

1)资料下载:点击资料即可下载2)对正点原子Linux感兴趣的同学可以加群讨论&#xff1a;9354467413&#xff09;关注正点原子公众号&#xff0c;获取最新资料更新第四十一章嵌入式Linux LED驱动开发实验上一章我们详细的讲解了字符设备驱动开发步骤&#xff0c;并且用一个虚拟的c…

java模拟回合打怪游戏

java模拟回合打怪游戏 玩家的血值&#xff1a;w 315 怪物的血值&#xff1a;g 500 玩家和怪物互打 玩家每次攻击怪物产生5-8点伤害 怪物每次攻击玩家产生3-5点伤害 采用回合制&#xff0c;一方血量<0游戏结束 用java程序模拟战斗过程&#xff1a;&#xff08;用文字…

cad pu插件下载lisp_CAD自动编号lisp插件下载

点击上方 “CAD自学网 ” → 点击右上角“...” → 点选“设为星标 ★ ”为CAD自学网加上星标&#xff0c;即可及时收到干货啦&#xff01;左下角阅读原文看CAD视频好课推荐&#xff1a;1、CAD2014&#xff1a;点击查看 2、室内&全屋&#xff1a;点击查看 3、CAD2019&am…

java循环的嵌套执行

java循环的嵌套执行 /*** 循环的嵌套执行*/ public class Test14 {public static void main(String[] args) {/*** 外层循环执行一次&#xff0c;内层循环执行多次*/int c 0;int i 1;while(i<10){System.out.println("i的值为&#xff1a;"i);int j 1;while (…

无法启动parallels 缺少必要组件_Parallels 体验 Manjaro 19 (Xfce)

用 Mac Parallels 体验 Manjaro Linux 19个人偏爱Xfce桌面安装时遇到一些问题, 在此快速记录一下启动安装盘时卡住参考资料 Manjaro 19 wont boot with Parallels 151. 按 Crtl Alt F2 进入命令行2. 按提示信息登录3. 安装 video-vesa 驱动sudo mhwd -i pci video-vesa 4. 启动…

java百马百担问题

java百马百担问题 /*** 一百担粮食&#xff0c;用一百匹马一次运走* 大马 一次托4担粮食* 中马 一次托2担粮食* 小马 两匹托1担粮食* 问&#xff0c;三种马各有多少匹* 4d2z1/2x 100*/ public class Test15 {public static void main(String[] args) {//计数变量int i 0;//大…