利用Python与selenium自动化模拟登陆12306官网!

Python使用selenium模块模拟登录12306 selenium模块概述   selenium模块是基于浏览器自动化的一个模块。换句话说使用selenium可以让浏览器根据自己写的代码自动运行。   相应的语法   ·编写基于浏览器自动化的操作代码   ·发起请求:get(url)   ·标签定位:find系列的方法   ·标签交互:send_ keys( 'xxx')   ·执行js程序:excute _script( 'jsCode ')一前进,后退:back() ,forward()   ·关闭浏览器:quit()   ... 阅读详情

前言:

近年来,12306的反爬越来越来严重,从一年前的 获取tk参数后到现在增加了 JS、CSS等加密方式!

目前大部分人利用的登陆方式都是利用selenium ,此文也不例外。

 

 

环境:

Windows

  python 3.6.5

模块:

selenium

  pyautogui

time

很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

很多已经做案例的人,却不知道如何去学习更加高深的知识。

那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!

QQ群:701698587

第一步:

  实例化一款浏览器,并进入到12306官网

图片

 

driver = webdriver.Chrome()
driver.get('https://kyfw.12306.cn/otn/resources/login.html')
driver.implicitly_wait(10)
driver.maximize_window()

 

第二步:

点击账号登陆

driver.find_element_by_xpath('//*[@id="J-userName"]').send_keys('123456')
driver.find_element_by_xpath('//*[@id="J-password"]').send_keys('123456')

图片

 

 

第三步:

  在输入框中,模拟输入账号密码:

driver.find_element_by_xpath('//*[@id="J-userName"]').send_keys('123456')
driver.find_element_by_xpath('//*[@id="J-password"]').send_keys('123456')

图片

 

第四步:

  当账号密码输入完毕后,我们应该要做的就是 模拟点击验证码图片了!

那么首先把图片下载下来:

yzm_code = driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div[2]/div[3]/div')
yzm_code.screenshot('yzm.png')

 

图片

 

 

第五步:

  验证码下载下来后就可以为所欲为了,不管是对接打码平台也好,自己训练模型,或者利用代码模拟点击也是可以的!

前面两种方法根本没法讲,所以这里采用第三种方式,进行模拟点击。

  在这里 说说我们需要达到的效果,验证码上总共有8张图,那么我想达到的效果就是我输入1,2,3那么程序自动点击1,2,3三张图片。

  所以我们先获取到每个图片的中心点坐标,这里是有规律的,聪明人肯定一看就懂了。

  我这里这个是随便写的:

code = input('请输入验证码:')
time.sleep(5)
point_map = {
    '1': '40,45',
    '2': '116,53',
    '4': '257,50',
    '5': '40,121',
    '6': '116,133',
    '3': '185,52',
    '7': '185,132',
    '8': '257,130'}
def get_point(indexs):
    indexs = indexs.split(',')
    temp = []
    for index in indexs:
        temp.append(point_map[index])
        print(temp)
    return temp


temp = get_point(code)

这两串代码就不解释了,很基础的东西。最终的效果就是 输入1,2 那么得到的是一个列表:

[ '40,45','116,53']

记住,这个坐标只是 验证码图片上的坐标,不是整个屏幕的全局坐标!!!!

那么如何取全局坐标?验证码顶点(1206,428)+验证码的坐标,即全局坐标!这里的 (1206,428)请自行测试!

图片

 

第六步:

  模拟点击,利用到pyautogui这个模块。切记,利用此模块前一定要加延迟进行画面切换。

  (此文只做方法学习,并没有任何其它意思,正常情况都是对接打码平台!希望大家能学以致用,在其它的编程过程中用的到这些方法!)

for i in temp:
    indexs = i.split(',')
    x = int(indexs[0])
    y = int(indexs[1])
    pyautogui.click(1206+x, 428+y)

最后点击登录即可!

driver.find_element_by_xpath('//*[@id="J-login"]').click()
利用Python与selenium自动化模拟登陆12306官网 前言: 近年来,12306的反爬越来越来严重,从一年前的 获取tk参数后到现在增加了 JS、CSS等加密方式! 目前大部分人利用的登陆方式都是利用selenium ,此文也不例外。 环境: Windows **  python 3.6.5** 模块: selenium **  pyautogui** time 第一步: 实例化一款浏览器,并进入到12306官网 driver = webdriver.Chrome()driver.get('https://kyfw.12306.cn/otn/resource 阅读详情

相关推荐

Python + selenium自动化工具 + 滑块验证码+点选验证码,实现模拟登录“中国铁路网12306”

文章目录一、模拟登录“中国铁路网123061.引入库2.初始化。3.其余步骤:总结 一、模拟登录“中国铁路网12306 下面是完成本次小项目需要引入的库,导入的时候如果爆红,说明编写错误或未安装库,安装的所有过程省略。由于12306的点选验证码机器很难模拟点击,所以采用了人工打码平台-超级鹰。 1.引入库 代码如下(示例): #!/usr/bin/env python # coding:utf-8 import requests from PIL import Image from io import

qq_35083213的博客 3060

python模拟登录12306_Python模拟登录12306的方法

#!/usr/bin/python# -*- coding: utf-8 -*-import re;import sys;import cookielib;import urllib;import urllib2;import optparse;import json;import httplib2;reload(sys)sys.setdefaultencoding('utf8');def Log...

weixin_36165569的博客 313

【Python】自动化实现高铁票监控与实时购票(2024年版文末附源码,订阅后源码可直取,不定期更新专栏

Selenium实现高铁票查询与监控购票(更新于24年附源码已测试可用,祝大家春节快乐,购票成功

PGwanban的博客 890

Selenium+Python对开源中国官网进行模拟登录

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33744854的博客 219

Python如何基于selenium实现自动登录博客园

主要介绍了Python如何基于selenium实现自动登录博客园,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

国内外主流嵌入式GUI汇总

随着MCU资源增多,处理能力也强了,同时市场需求也增多了GUI功能也越来越丰富了,很多的嵌入式图形库都可以做出绚丽的界面。

m0_69914734的博客 3290

selenium官网下载地址以及相关介绍

http://selenium-release.storage.googleapis.com/index.html 第一个是启动ie浏览器需要的驱动文件 第二个是2.53.1的selenium,其中有相关的jar包 libs是依赖包 selen-java-2.53.1.jar是主要的jar包 ...

lyl00ling的博客 5419

Android11 关于三方应用获取su权限

SELinux,全称Security-Enhanced Linux,是一种基于Linux内核的安全机制。它通过强制访问控制(MAC)来增强Linux系统的安全性,如果不禁用SELinux,完成下面的修改可能会导致设备进入Recovery界面!adb shell getenforce 为Permissive(宽容模式),查看报错日志,发现是客户apk想使用su命令提权,但是没有权限!对于保护系统资源和防止未经授权访问非常有帮助!系统这边做修改,让su权限下放到三方应用.客户的apk运行报错。

sinat_37429535的博客 1901

python模拟登录12306_利用Python与selenium自动化模拟登陆12306官网!

近年来,12306的反爬越来越来严重,从一年前的 获取tk参数后到现在增加了 JS、CSS等加密方式!完整源代码:链接:https://pan.baidu.com/s/1MFS8hVhjq9F0eJc****H5w提取码:fp40目前大部分人利用的登陆方式都是利用selenium ,此文也不例外。环境:Windowspython 3.6.5模块:seleniumpyautoguitime第一步:实...

weixin_29022115的博客 323

通俗傻瓜式理清光栅化渲染和光线追踪渲染的原理

用通俗语言傻瓜式的讲清楚光栅渲染和光线追踪渲染的原理,方便没有相关理论基础的朋友理解入门。

qq_37366618的博客 2万+

时序分析-由D触发器结构来理解Tsu、Th

FPGA逻辑单元内的D触发器(D-FF)是一种在时钟的上升沿(或下降沿)将输入信号的变化传送至输出的边沿触发器。 数字电子技术基础-闫石(第五版)边沿D触发器内部结构见下图: 而FPGA原理与结构(日)一书中,内部结构较之上图多了俩反相器: 由传输门和俩个反相器组成一个循环电路(锁存器),再由前后两级锁存器按主从结构链接而成。这里的传输门起开关作用,随着CLK的状态变化切换开关。只看输出的话,前级锁存器的值会随着时钟输入的变化井然有序地传入后级锁存器。为了防止时钟信号变化时输入信号发生冒险,从而使稳定.

XY_Chang的博客 3973

python 大众点评模拟登陆_利用Python与selenium自动化模拟登陆12306官网!

前言:近年来,12306的反爬越来越来严重,从一年前的 获取tk参数后到现在增加了 JS、CSS等加密方式!目前大部分人利用的登陆方式都是利用selenium ,此文也不例外。环境: Windows  python 3.6.5模块: selenium  pyautogui time第一步:  实例化一款浏览器,并进入到12306官网driver = webdriver.Chrome()driver...

weixin_39751453的博客 522

蓝桥杯第七届省赛试题--“模拟风扇控制系统”

题目要求 功能简述 “模拟风扇控制系统”能够模拟电风扇工作,通过按键控制风扇的转动速度和定时时间,数码管实时显示风扇的工作模式,动态倒计时显示剩余的定时时间,系统主要由数码管显示、单片机最小系统、按键输入和电机控制保护电路组成,系统框图如图 1 所示: 单总线驱动程序、CT107D 单片机考试平台电路原理图以及本题所涉及到的芯片数据手册,可参考计算机上的电子文档。程序流程图及相关工程文件请以考生...

qq_43280087的博客 2659

Python3 爬虫实战 — 模拟登陆12306【点触验证码对抗】

登陆时间:2019-10-21 实现难度:★★★☆☆☆ 请求链接:https://kyfw.12306.cn/otn/resources/login.html 实现目标:模拟登陆中国铁路12306,攻克点触验证码 涉及知识:点触验证码的攻克、自动化测试工具 Selenium 的使用、对接在线打码平台 完整代码:https://github.com/TRHX/Python3-Spider-Pra...

BOB'S BLOG 4184

Cadence virtuos安装教程

本文详细介绍了在Ubuntu 18.04系统上安装Cadence Virtuoso IC617及MMSIM的完整流程。主要内容包括:1)系统环境准备(安装JDK及相关依赖包);2)通过创建软链接和修改系统文件实现RedHat环境兼容;3)共享目录文件操作与分卷压缩包合并解压技巧;4)使用InstallScape工具的安装步骤详解,包括权限处理和配置选项。特别提醒需注意系统兼容性处理(如创建redhat-release文件)和分卷压缩包的特殊解压方法(cat合并)。整个安装过程涉及大量Linux命令操作,需特

wangjie36的博客 298

【ArcGIS风暴】ArcGIS 10.2导入Excel数据X、Y坐标(经纬度、平面坐标),生成Shapefile点数据图层

用过CASS的人都知道,野外数字测图得到的点数据(平面坐标)可以直接导入到CASS中,进一步绘制地形图。那么,带有坐标的数据能不能在ArcGIS中实现点图层的生成呢?答案是必须的! 本文以气象台站shp数据的生成为例,详细介绍ArcGIS 10.2中导入X、Y坐标(这里指的是经度、纬度),生成Shapefile点数据的流程。 相关阅读:《全站仪、RTK测量坐标数据在CASS和ArcGIS中展点的区别和联系》 目录 1、数据准备 2、添加X、Y数据 3、属性表连接(Join) 4、导出为Sh.

智慧空间实验室 10万+

Python爬虫学习之selenium项目1---12306模拟登录和验证码识别

Selenium是一款基于浏览器自动化的工具,使用它可以模拟浏览器进行网页访问,对于爬取一些动态加载数据的网站算是一个非常好用的工具了。 今天练习的项目就是基于Selenium对12306进行模拟登陆,并对其中的登陆验证码通过调用第三方平台超级鹰来进行自动识别点击,完成自动登陆。 一、首先,先对要爬取的网站12306进行一个分析。官方地址:https://www.12306.cn/index ...

qq_41174897的博客 1081

基于matlab的阈值分割的车牌定位识别系统

车牌自动识别模块是现代社会智能交通系统(ITS)的重要组成部分,是图像处理和模式识别技术研究的热点,具有非常广泛的应用。车牌识别主要包括以下三个主要步骤:车牌区域定位、车牌字符分割、车牌字符识别。本案例通过对采集的车牌图像进行灰度变换、边缘检测、腐蚀及平滑等过程进行车牌图像预处理,并由此得到一种基于车牌颜色纹理特征的车牌定位方法,最终实现了车牌区域定位。车牌字符分割是为了方便后续对车牌字符进行匹配,从而对车牌进行识别。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 969

python识别验证码12306_selenium模拟登录12306官网 +超级鹰识别验证码

前言一、通过selenium自动登录12306官网from selenium import webdriverfrom time import sleepfrom PIL import Imagefrom selenium.webdriver import ActionChainsimport requestsfrom hashlib import md5#超级鹰第三方接口class Chaoji...

weixin_30774211的博客 217

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

基于selenium实现12306半自动化抢票

基于selenium实现12306半自动化抢票 一、需求分析 打开12306官网 登录 (进入登录页面,扫码登录) 进入到个人主页 进入到购票页面   录入出发地   录入目的地   录入出发时间   点击查询   选择要购买的车次 如G8924,选择坐席(一等座、二等座)   判断是否有票,点击预定 确定乘车人、席别 提交订单 二、代码实现 导入模块 from selenium import webdriver from selenium.webdriver.

YIGU的博客 897

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Python自动化脚本】实现高铁票监控并成功购票(2024年版文末附源码地址

2024年更新)python实现高铁票查询与监控购票-源码已测试可用,祝大家春节快乐,购票成功!

PGwanban的博客 4659

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python爬虫使用seleium+超级鹰+Image模块自动登录12306(附源码和登录视频)

利用代码自动登录12306官网是爬虫领域的经典行为,整个过程中的难点在于网站验证码的自动化突破,整个过程需要突破两个验证码的阻碍,一是文字选图,二是滑块。其中文字选图较为麻烦。但是还是有方法能够顺利进行网站的登录,代码一执行,直接会运行到登录后的界面。 首先需要实例化一个brower对象,用于驱动浏览器 browser = webdriver.Firefox(executable_path=r'D:\python\python安装\Scripts\geckodriver.exe') browser.g

weixin_42435368的博客 996

1每天Python小例-12306爬虫#WinError 2

注意事项:1.下载电脑对应版本的火狐驱动程序geckodriver.exe 2self.driver.visit(self.login_url)后加上 script = ‘Object.defineProperty(navigator,“webdriver”,{get:()=>undefined,});’ self.driver.execute_script(script) 不然登录界面滑动移块会报错 ...

weixin_42666224的博客 982

Python3 爬虫学习笔记 C14【验证码对抗系列 — 点触验证码】

Python3 爬虫学习笔记第十四章 —— 【验证码对抗系列 — 点触验证码】 文章目录【14.1】关于点触验证码【14.2】点触验证码攻克思路【14.3】模拟登录 12306 — 总体思路【14.4】主函数【14.5】初始化函数【14.6】破解入口函数【14.7】账号密码输入函数【14.8】页面截图函数【14.9】验证码元素查找函数【14.10】获取验证码坐标函数【14.11】验证码剪裁...

BOB'S BLOG 1251
上一篇: 10个顶级Python实用库,推荐你试试!
下一篇: 几十个Python常用模块集合,掌握了你就是大佬!
Python编程_可乐
博客等级 码龄6年 917粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值