首先用火狐浏览器进入12306网站的登录界面,F12获取登录界面的url地址.

再获取验证码图片的链接及其验证码校正所post的数据

最后获取用户名和密码的登录链接及其post的数据

# coding=utf-8
import requests
import os#下载验证码图片
def save_image():image_url = 'https://kyfw.12306.cn/passport/captcha/captcha-image?login_site=E&module=login&rand=sjrand&0.7519806101835129'response = session.get(image_url)if not os.path.exists('image'):os.mkdir('image')file_path = 'image/1.jpg'with open(file_path,'wb') as f:f.write(response.content)#校正验证码
def check_captcha():check_captcha_url = 'https://kyfw.12306.cn/passport/captcha/captcha-check'data = {'answer':get_answer(input("请输入正确验证码的序号>>>:")),#正确图片的像素'login_site':'E','rand':'sjrand'}response = session.post(check_captcha_url,data=data)print (response.text)#手动输入验证码序号
def get_answer(index):point = {'1': '37,46','2': '111,46','3': '181,46','4': '254,46','5': '37,116','6': '111,116','7': '181,116','8': '254,116'}index = index.split(',')temp =[]for item in index:temp.append(point[item])return ','.join(temp);#校验用户名和密码
def check_username_paasword():save_image()check_captcha()check_username_password_url = 'https://kyfw.12306.cn/passport/web/login'data = {'appid':'otn','password':'123456789',#帐号密码故意写错'username':'123456789'}response = session.post(check_username_password_url,data=data)print (response.text)session = requests.Session() #创建一个session对象,实现自动会话处理
login_url = 'https://kyfw.12306.cn/otn/login/init' #登录页面,获取cookie
session.get(login_url)
check_username_paasword()

说明: 验证码是手动登录的,验证码的验证原理是通过正确图片点击的像素位置来确定,可以通过点击验证码图片来查看源码的变化来知道.

模拟登录12306网站相关推荐

  1. python爬虫登录12306失败_Python网络爬虫(selenium模拟登录12306网站)

    一.通过selenium自动登录12306官网 1.1 超级鹰打码平台API,创建chaojiyin.py文件 #!/usr/bin/env python#coding:utf-8 importreq ...

  2. Python使用selenium模拟滑块验证登录12306网站 实测可用

    Python使用selenium模拟登录12306网站(根据12306的更新编写的2022年4月最新方法)实测可用 from selenium import webdriver from time i ...

  3. 模拟登录12306(selenium+超级鹰)

    最近迷上了用selenium去登陆各大网站,别说selenium真挺好用,可以轻松搞定ajax动态加载的网页,不用很费劲的去抓包查找.咳咳-跑题了,回归正题. 这次用selenium去登录12306网 ...

  4. selenium模拟登录12306

    利用selenium模拟登录12306,但是12306的登陆要想模拟还挺难的,需要先进行坐标识别,识别出来之后还要在进行滑块拖动验证识别,这里做一下记录. 这里的坐标识别是用的超级鹰,有时也会坐标识别 ...

  5. Python使用selenium模块模拟登录12306

    selenium模块概述 selenium模块是基于浏览器自动化的一个模块.换句话说使用selenium可以让浏览器根据自己写的代码自动运行. 相应的语法 ·编写基于浏览器自动化的操作代码 · 发起请 ...

  6. 模拟登陆 12306网站

    准备目标网站 :https://kyfw.12306.cn/otn/login/init安装PIL模块: pip3 install pillow 或 pip3 --default-timeout=10 ...

  7. 用python模拟登录12306

    此内容仅供学习使用...杜绝XXX!!! 1.首先第一步 1.1进入12306的登录页面,并且打开开发者工具 在Netmork中找到验证图片的信息 1.2然后点击Headers后没有发现验证图片的UR ...

  8. python实现登录12306网站查看火车票信息

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:TM0831 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

  9. python12306登录_python 手动验证并模拟登录12306

    [实例简介] [实例截图] 提示让输入验证码序号的时候(多个序号 以逗号隔开即可),就可以在同目录下打开图片验证码captcha.jpg,类似如下: [核心代码] import requests fr ...

最新文章

  1. 红帽虚拟化RHEV-架构简介
  2. JavaScipt30(第三个案例)(主要知识点:css变量)
  3. GitPush时提示:fatal: The remote end hung up unexpectedly
  4. python bootstrap-fileinput示例_bootstrapfileinput实现文件自动上传
  5. 使用python自己搭建一个简单的BP神经网络
  6. (非原)如何让.net开发的Winform程序快速释放内存
  7. javascript包装对象
  8. mysql支持的平台和操作系统_MySQL 数据库所支持的操作系统_MySQL
  9. 计算机三种不同类型的用户账户,计算机应用基础(第2版)教学课件作者陈绥阳第二章.ppt...
  10. oracle关键字作为字段名使用方法
  11. python英文分词统计词频_Python 分词并统计词频
  12. 振动信号的短时傅里叶变换分析
  13. 用python来开发webgame服务端(2)
  14. python多条件求和_数据的多条件求和
  15. 为什么再次调用编辑器总是加载同一张图片?
  16. LOL盗号PHP源码,说说技术那些事之LOL盗号网站
  17. 29岁,从绝望崩溃到年入50万:这个技能,决定你5年后的人生!
  18. 危化品道路运输车辆识别抓拍 YOLOv5
  19. FreeRTOS中的堆栈计算
  20. 【Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 第一个Shader的书写

热门文章

  1. 计算机如何连接共享网络设置,win7怎么共享无线_win7共享网络的设置方法
  2. Android学习之 Fragment
  3. CSS(列表+表格+链接+自定义鼠标光标)样式
  4. linux调整笔记本色彩,linux 调节笔记本屏幕亮度
  5. 任务型对话(二)—— DST(对话状态追踪)
  6. 抽象代数之第一群同构定理的证明
  7. Android 启用/禁用蓝牙传输文件功能(不能影响蓝牙耳机听歌)
  8. 游戏开发 - 开发流程 - 收集
  9. 【深度强化学习】GAIL 与 IRL 的理解
  10. 分享32套精美的免费 PSD 网页界面设计素材