我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python怎么模拟登陆网站

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python怎么模拟登陆网站

这篇文章主要介绍了python怎么模拟登陆网站,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

使用已有cookie登陆

使用浏览器登陆,获取浏览器中的cookie信息,来进行登陆。

我们以博客园为例,先登录博客园账号。我们访问随笔列表,在控制台我们可以看到我们登陆后浏览器的cookie

python怎么模拟登陆网站

剔除一些数据统计及分析的cookie,剩下的就是登陆可能需要的.CNBlogsCookie和.Cnblogs.AspNetCore.Cookies

# _ga google分析 cookie# UM_distinctid 友盟cookie# CNZZxxx CNZZcookie# __utma,__utmc,__utmz google统计网站# Hm_lvt_xxx 百度统计网站
import urllib.requesturl = 'https://i.cnblogs.com/posts'user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'#浏览器登录后得到的cookie,也就是刚才复制的字符串cookie_str = '.CNBlogsCookie=xxx; .Cnblogs.AspNetCore.Cookies=xxx'headers = { 'User-Agent': user_agent, 'cookie':cookie_str}req = urllib.request.Request(url,headers=headers)resp = urllib.request.urlopen(req).read().decode('utf-8')print(resp)

python怎么模拟登陆网站

登陆获取cookie

登陆的表单一般是使用的form data,现在也有些表单使用request payload使用json格式传参。

form data如药智网

python怎么模拟登陆网站

request payload如博客园

python怎么模拟登陆网站

form data

博客园的登陆需要拖动验证所以略过。我们以药智网为例,我们打开控制台可以看到登陆需要传的表单参数,这里是使用的form data表单。我们模拟登陆后获取到登陆后的cookie,然后访问登录后的个人中心页面。

python怎么模拟登陆网站

import urllib.requestimport http.cookiejarurl = 'https://www.yaozh.com/login'user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'# formData数据data = {'username': '用户名',  'pwd': '密码',  'formhash': 'C3086BBA84',  'backurl': 'https%3A%2F%2Fwww.yaozh.com%2F'}post_data = urllib.parse.urlencode(data).encode('utf-8')# 请求头设置headers = { 'User-Agent': user_agent}# 构造登陆请求req = urllib.request.Request(url, headers=headers, data=post_data)# cookiecookie = http.cookiejar.CookieJar()# 构造一个opener携带登录后的cookieopener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))# 发送登陆请求resp = opener.open(req)print(resp)# 登录后个人中心url = 'https://www.yaozh.com/member/'# 构造访问请求req = urllib.request.Request(url, headers=headers)resp = opener.open(req).read().decode('utf-8')print(resp)

python怎么模拟登陆网站

request payload

如果登陆需要request payload我们需要将参数转为json字符串并在头部设置Content-Type

import json...data = {'loginType': '1',  'pwdOrVerifyCode': '密码',  'userIdentification': '账号',  'uaToken': '',  'webUmidToken':''}headers = { 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': user_agent}req = urllib.request.Request(url, headers=headers, data=json.dumps(data))...

登陆后用session保持登陆状态

我们用requests模块的Session对象来保存回话信息

import requestsurl = 'https://www.yaozh.com/login'user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'# formData数据data = {'username': 'chenjy1225',  'pwd': '19931225yjy',  'formhash': 'C3086BBA84',  'backurl': 'https%3A%2F%2Fwww.yaozh.com%2F'}#构造Sessionsession = requests.Session()# 发送post请求resp = session.post(url, data)# 登录后个人中心url = 'https://www.yaozh.com/member/'# 发送请求访问个人中心resp = session.get(url).content.decode('utf-8')print(resp)

python怎么模拟登陆网站

调用浏览器登陆

我们也可以在程序中调用一个浏览器来访问登陆网站。在python中使用Selenium库就能轻松实现调用浏览器,被控制的浏览器可以是chrome、firefox等。
以前较常用的还是PhantomJS但是PhantomJS被python弃用了。

UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '

firefox对应的geckodriver

chrome对应的chrnpm.taobao.org/mirrors/chromedriveromedriver

下载Selenium、firefox浏览器及firefox驱动。

将下载的firefox驱动geckodriver放在firefox浏览器安装目录

将firefox浏览器安装目录添加到path中

重启ide

我们找到需要登陆时候输入的元素id及登陆button id。

python怎么模拟登陆网站

from selenium import webdriverimport time# 新建selenium浏览器对象,后面是geckodriver.exe下载后本地路径browser = webdriver.Firefox()url = 'https://www.yaozh.com/login'# 浏览器访问登录页面browser.get(url)# 等待3s用于加载脚本文件browser.implicitly_wait(3)# 输入用户名username = browser.find_element_by_id('username')username.send_keys('chenjy1225')# 输入密码password = browser.find_element_by_id('pwd')password.send_keys('19931225yjy')# 点击登录按钮login_button = browser.find_element_by_id('button')login_button.submit()# 网页截图browser.save_screenshot('screenshot.png')# 强制等待5s,等待登录后的跳转time.sleep(5)url = 'https://www.yaozh.com/member/'browser.get(url)# 网页截图个人中心browser.save_screenshot('screenshot1.png')# 关闭浏览器browser.quit()

screenshot.png:

python怎么模拟登陆网站

screenshot1.png:

python怎么模拟登陆网站

感谢你能够认真阅读完这篇文章,希望小编分享的“python怎么模拟登陆网站”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python怎么模拟登陆网站

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python怎么模拟登陆网站

这篇文章主要介绍了python怎么模拟登陆网站,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用已有cookie登陆使用浏览器登陆,获取浏览器中的cookie信息,来进行登陆
2023-06-14

Python 模拟登陆

import urllibimport urllib.requestimport gzipimport httpimport http.cookiejar#定义一个方法用于生成请求头信息,处理cookie  def getOpener(he
2023-01-31

python模拟登陆Github示例

首先进入github登录页:https://github.com/login输入账号密码,打开开发者工具,在Network页勾选上Preserve Log(显示持续日志),点击登录,查看Session请求,找到其请求的URL与Form Da
2023-01-31

python实现网站的模拟登录

本文主要用python实现了对网站的模拟登录。通过自己构造post数据来用Python实现登录过程。 当你要模拟登录一个网站时,首先要搞清楚网站的登录处理细节(发了什么样的数据,给谁发等...)。我是通过HTTPfox来抓取http数据包来
2022-06-04

Python模拟用户自动登陆网易126邮

Python模拟用户自动登陆网易126邮箱的源码详解,在这里主要来和大家讲一讲,关于利用Python程序来实现自动登录(登陆)网易的126邮箱email的源码与方法,其它邮箱可以借鉴此Python程序代码发邮件。涉及到Python针对邮箱操
2023-01-31

Python 爬虫模拟登陆知乎

在之前写过一篇使用python爬虫爬取电影天堂资源的文章,重点是如何解析页面和提高爬虫的效率。由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了一下python模拟登陆,网上关于这部分
2022-06-04

通过抓包实现Python模拟登陆各网站的原理分析

今天就跟大家聊聊有关通过抓包实现Python模拟登陆各网站的原理分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、教程1.1 基本介绍通过分析登陆流程并使用 Python 实现模
2023-06-17

Python项目实战:密码模拟登陆猎聘网

前言今天为大家介绍一个模拟登陆猎聘网招聘网站的案列,加了一个输入密码不可的模块getpass,这样更有安全性,可能实际应用不大,但是存在必有价值,就当是一个案例的练习吧,看看是如何做到模拟登陆猎聘网的导入第三方库
2023-06-02

python项目实战:模拟登陆CSDN

前言今天为大家介绍一个利用Python模拟登陆CSDN的案例,虽然看起来很鸡肋,有时候确会有大用处,在这里就当做是一个案例练习吧,提高自己的代码水平,也了解Python如何做到模拟登陆的,下面来看代码导入库
2023-06-02

通过抓包实现Python模拟登陆各网站的原理分析是怎样的

这篇文章将为大家详细讲解有关通过抓包实现Python模拟登陆各网站的原理分析是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  一、教程简介  1.1 基本介绍(私信小编001 、00
2023-06-02

Python项目实战:15行Python代码模拟登陆人人网

前言今天为大家介绍一个利用Python模拟登陆人人交友网的案例,通过会话请求来登陆,可能没有什么实际的应该的,但是大家来看看这个最简单的案例吧,看看如何做到用这么少的Python代码来实现模拟登陆的导入第三方库
2023-06-02

Python模拟登陆及个人经验(五)

实验名称:模拟登陆实验要求:输入用户名密码认证成功显示欢迎信息输错三次锁定用户 思路:用户输入username判断username是否为真(文件)。否:提示用户不存在;是:判断是否锁定(文件)如果用户锁定提示:该用户已锁定;没锁定就输入密码
2023-01-31

python模拟登陆、POST/GET请求方式

Python提供多种库用于模拟登录和发送HTTP请求。Requests-HTML和Selenium可用于模拟登录,而Requests和URLLib可用于发送GET和POST请求。模拟登录涉及创建会话、发送登录请求、提取会话cookie。发送POST请求需要准备请求参数并使用post()方法,而发送GET请求需要准备请求参数并使用get()方法。示例代码展示了使用Requests-HTML模拟登录、使用Requests发送POST请求、使用URLLib发送GET请求。还提供了注意事项,例如设置请求头、处理重
python模拟登陆、POST/GET请求方式
2024-04-02

Python爬虫模拟登录带验证码网站

爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法。python提供了强大的url库,想做到这个并不难。这里以登录学校教务系统为例,做一个简单的例子。 首先得明白cookie的作用,cookie是某些网站为了辨别用户身份、
2022-06-04

使用python模拟浏览器实现登陆

前言你有没有想过,当我们在某个网站上登陆时,网站是如何通过验证的,我们都提交给了网站哪些信息,浏览器都发起了哪些请求? 下图是某个网站的登陆界面,接下来就让我们通过命令行模拟浏览器实现登陆操作,看看一个简单的登陆操作,具体是如何实现的。
2023-01-31

python项目实战:切换iframe模拟登陆126网易邮箱

前言今天为大家介绍一个模拟登陆126网易邮箱的案例,大多数登陆都是用input,今天这个案例特殊一点,126登陆框是使用iframe进行嵌套的,所以需要先切换到该iframe,但是还有要用到selenium来控制浏览器导入第三方库
2023-06-02

gitlab能更新不能登陆网站怎么办

近期有不少用户反映,他们使用Gitlab进行版本控制时,会出现“能更新但不能登陆网站”的情况。这一问题一直困扰着不少用户,那么该如何解决呢?本文将对此一问题做出详细的解答。首先,我们需要了解一下这一问题确切的表现形式。当用户在使用Gitla
2023-10-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录