前言

每一个学习过爬虫的人对12306肯定都是有点想法,但在每年春节或一些假期经历过12306官网抢票后,这些念头便逐渐不剩下多少了。有时候真的是活生生的人都瞅不出来
一直没有勇气去分析一下12306官网

请求分析

  1. 我们简单抓包就可以找到生成验证码的接口

    去除一些暂时无关的参数(仅分析验证码)
    https://kyfw.12306.cn/passport/captcha/captcha-image?login_site=E&module=login&rand=sjrand
  2. 验证验证码是否正确的接口
    其中answer表示验证码的坐标位置
    answer: 34,34,38,105

代码思路

import requestsheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36'
}login_url = 'https://kyfw.12306.cn/otn/resources/login.html'
session = requests.Session()
session.get(login_url)image_url = 'https://kyfw.12306.cn/passport/captcha/captcha-image?login_site=E&module=login&rand=sjrand'
req = session.get(image_url, headers=headers).content
with open('code.png', 'wb') as f:f.write(req)check_url = 'https://kyfw.12306.cn/passport/captcha/captcha-check'point_dict = {'1': '37,40','2': '112,40','3': '187,40','4': '262,40','5': '37,120','6': '112,120','7': '187,120','8': '262,120',
}
def get_point(indexs):indexs = indexs.split(',')temp = []for index in indexs:temp.append(point_dict[index])return ','.join(temp)params = {'answer': get_point(input('请输入验证码位置')),
'rand':'sjrand',
'login_site':'E',
}
response = session.get(check_url, params=params, headers=headers).text
print(response)

分析

12036 验证码 问题就在如何确认应该点击的坐标位置,目前还没有发现合适的做法,不知道有哪位大佬可以指点一下,有了解的大码平台也可以推荐一下。

【2019.06.22】12306官网模拟登陆之验证码生成与验证初探相关推荐

  1. 仿12306官网(附源码)

    文章目录 前言 一.仿写12306官网 二.HTML+CSS代码如下 1.HTML代码 2.CSS代码 总结 一.代码如下(示例): 照片就没有传上去了,可以自行替换一下 <!DOCTYPE h ...

  2. 12306官网自动刷票5秒太慢了,试试这个方法提速

    使用第三方刷票软件有风险,但是12306官网的自动查询功能太慢了,笔者就想了下如果能把每5秒刷新修改为1秒刷新多次回家的票就有着落了说干就干,思路很简单,修改服务器上的JS文件是不太可能的,所以只得从 ...

  3. VMware官网注册账号之验证码问题

    VMware官网注册账号之验证码问题 首先上个官网注册账号链接- https://my.vmware.com/zh/web/vmware/registration 点我访问官网注册 然后不出意外都会看 ...

  4. python-selenium模拟登陆(滑动验证码)

    python-selenium模拟登陆(滑动验证码) 普通滑动验证码验证 只需要我们将滑块拖动指定位置,处理起来比较简单.拖动之前需要先将滚动条滚动到指定元素位置,但是需要注意目标网站对seleniu ...

  5. 冒险岛2官网模拟具体教程之二头部的布局以及动态交互实现(详解)(连载)

    冒险岛2静态页面展示: 冒险岛当鼠标移入时,页面展示: 需求: 1.当滚动条滚动到一定距离时,导航栏固定在页面的最上端 2.当鼠标移入对应的li标签时,下面的黄线就跟随到对应的li标签下面 3.当鼠标 ...

  6. 冒险岛2官网模拟具体教程之一工具的准备(详解)(连载)

    第一步:因为我们没有UI提供的页面原图,所以我们需要自己在官网场面去截图,那么怎么截图呢? a: 用谷歌浏览器先打开冒险岛官网:http://mxd2.qq.com/main.htm b: 打开你想截 ...

  7. 赶集网模拟登陆程序PHP

    <?php $url = "https://passport.ganji.com/login.php"; //这里改成你自己的账号和密码 $data ="login ...

  8. 冒险岛2官网模拟之四自动轮播图(连载)

    在官网的的轮播图: 具体的需求: 1.轮播图每间隔7秒滚动一次 2.每一次滚动下面的滚动条的样式发生相应的变化 3.有两个点击事件(官方/合作)点击之后切换到不同的轮播图:图中展示的官方对应的轮播图, ...

  9. 爬虫模拟登陆手机验证码_Python+scrapy爬虫之模拟登陆

    一.126,163邮箱模拟登陆 # -*- coding:utf-8 -*-import timefrom selenium import webdriverdef login126_or_163em ...

最新文章

  1. .Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题)
  2. LR学习笔记三 之 界面分析
  3. 基于linux的java学习,Java学习---Linux总结
  4. 2017c语言预测,2017计算机二级C语言上机最终预测题
  5. 编写你的第一个 Django 应用,第 5 部分
  6. HDU 6343.Problem L. Graph Theory Homework-数学 (2018 Multi-University Training Contest 4 1012)
  7. java自定义注解实现日志功能
  8. Jira-Clone与发邮件的使用
  9. 2023年东北大学理学院数学考研必看成功上岸前辈复习经验分享
  10. 哲学中的推理规则 —— 《自然哲学之数学原理》
  11. weblogic安装部署升级小结
  12. 阿里云mysql读写分离实现_MySQL-Proxy实现MySQL读写分离
  13. 2019 “钱”途光明的 8 大前端开发技术,你还差几个?
  14. 找出若干个非零数中的最小值以及它们的平均值
  15. Windows7计算机的程序文件名,Win7怎么显示文件后缀名_Win7显示文件的扩展名-192路由网...
  16. python 修图_拿到一张图怎么后期才能更好一点啊?告诉你具体的修图思路
  17. html5 06携程网案例、 全屏插件的使用
  18. 电信业Hadoop应用分析
  19. 融合差分变异策略和自适应调整权重的改进蝴蝶优化算法
  20. Cicero:一个单细胞染色质可及性实验可视化R包

热门文章

  1. 机器人教练走进驾校_机器人教练亮相驾校 | 学员体验后直呼受用!
  2. Python打印空心等腰三角形
  3. html 百度网盘的布局,百度网盘披露5G布局:打造个人云操作系统!
  4. 在线配色网,方便实用!
  5. 「网络流 24 题」太空飞行计划
  6. 采坑阿里云 kex_exchange_identification: read: Connection reset by peer
  7. ultimaker论坛_Ultimaker的故事:具有开源DNA的3D打印机
  8. 咕咕机vs喵喵机测评
  9. Stream 校验两个集合元素是否完全一致
  10. OVS CT连接追踪实现NAT