python爬虫也学了一段时间了。也爬过不少网站,最后我想用12306抢票器这个项目做一个对之前的学习的效果成见也是一个目标(开始学爬虫的时候,看到说,会爬12306,就会爬80%的网站),本人纯自学。可以弯路走了不少,爬的网站也没有什么实质的价值(不是老师的作业,也不是老板的需求,就是自己的练习),所以嘛,不是有句话说的,人活着,就是为了搞事情。

12306,真的是特别厉害的反爬,请求太难分析了。一些隐藏的参数,被转码的参数。不过分析成功后,你真的会感觉别的网站也就那么回事。

----------------------------登陆

来到登陆页面。有验证码和登陆框。--登陆成功后就跳转了,用Mozilla Firefox浏览器也可以看到跳转以前的请求,但是我的Mozilla Firefox有BUG 别的都可以就是登陆不行。

先看看验证码,点击刷新验证码

链接找到了

下面4个参数呢 前面3个事固定的也不懂代表什么意思。就看到一个 login 我想可能是代表登陆的验证码吧。第4个是个随机数。可是我反复刷新后,觉得不带那个也可以。没难度‘

验证码验证:

选择正确以后,多了:https://kyfw.12306.cn/passport/captcha/captcha-check 这个POST请求 3个参数

answer 这个呢就是代表 你点的坐标,我这里点了3下 恰好有6个坐标。

后面2个 不知道 应该是固定的

看看返回的

验证成功

登陆

我输入错的 返回就是这个  对的就返回正确。

总结:登陆没难度

----------------------------查票

查票链接:https://kyfw.12306.cn/otn/leftTicket/init

输入 出发地,目的地 ,时间后。点击查询

多出了这个请求

看看返回

这不就是列车余票吗

但是CBN 为什么是赤壁呢

看看这个JS文件 就知道了

所有的车站名都用英文大写表示了

----------------------------产生订单

在没有登陆的时候点击预定。会弹出需要登陆的页面

还会多出这个请求

看到LOGIN这个单词,肯定和登陆有关        就是验证登陆状态吧,

用Mozilla Firefox浏览器的就会发现当flag为 true的时候也就你成功登陆之后 才会跳转

成功登陆后来到订单页面

https://kyfw.12306.cn/otn/confirmPassenger/initDc

看到了联系人的请求

有个参数

REPEAT_SUBMIT_TOKEN

这个参数是什么意思  我也不知道。。。

要找这个对应的值,可就找的好苦

在这里

选择一个联系人后 点击提交

来分析第一个

返回的什么 我不知道 我们看看请求的参数

第一个 第二个是固定的

第3个   第4个是乘客信息 第4个

tour_flag:dc 我开始以为是动车的意思 ,结果我想多了 是购票类型 dc为单程

REPEAT_SUBMIT_TOKEN这个都知道在哪里了吧

2张就用,隔开吧 这是我想的。最好就买1张

下一个请求

count 好像是表示座位类型 多试试就知道 余票是29张。

看看请求参数

train_date

train_no #火车编号

stationTrainCode  #火车列号

seatType #座位类型 1是硬座,2是软座,3是硬卧,4是软卧,O是高铁二等座,M是高铁一等座,

fromStationTelecode #出发站

toStationTelecode #目的站

leftTicket #也是和REPEAT_SUBMIT_TOKEN一样或得

purpose_codes = 00

train_location = PB

_json_att

就差最后一步了

点击提交订单

分析这些

刚刚下了个迷你的火狐

返回"data":{"submitStatus":true}说明请求成功,出票成功,如果为其他就是扣票失败

这些参数 除了联系人信息都可以和REPEAT_SUBMIT_TOKEN这个参数一样获得。

写博客也是不易

这个没用任何语言    纯分析 一些细致的参数 在JS里面有声明。

最后 告诉大家 也给自己打气

加油

做生活里的小强

Python爬虫之12306-分析请求总概述的更多相关文章

  1. python爬虫之12306网站--火车票信息查询

    python爬虫之12306网站--火车票信息查询 思路: 1.火车票信息查询是基于车站信息查询,先完成车站信息查询,然后根据车站信息查询生成的url地址去查询当前已知出发站和目的站的所有车次车票信息 ...

  2. Python爬虫和情感分析简介

    摘要 这篇短文的目的是分享我这几天里从头开始学习Python爬虫技术的经验,并展示对爬取的文本进行情感分析(文本分类)的一些挖掘结果. 不同于其他专注爬虫技术的介绍,这里首先阐述爬取网络数据动机,接着 ...

  3. python爬虫之12306网站--车站信息查询

    python爬虫查询车站信息 目录: 1.找到要查询的url 2.对信息进行分析 3.对信息进行处理 python爬虫查询全拼相同的车站 目录: 1.找到要查询的url 2.对信息进行分析 3.对信息 ...

  4. python爬虫框架(1)--框架概述

    框架概述 其中比较好用的是 Scrapy 和PySpider.pyspider上手更简单,操作更加简便,因为它增加了 WEB 界面,写爬虫迅速,集成了phantomjs,可以用来抓取js渲染的页面.S ...

  5. python爬虫(二)_HTTP的请求和响应

    HTTP和HTTPS HTTP(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收HTML页面的方法 HTTPS(HyperText Transfer Prot ...

  6. python爬虫——词云分析最热门电影《后来的我们》

    1 模块库使用说明 1.1 requests库 requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更 ...

  7. python爬虫--模拟12306登录

    模拟12306登录 超级鹰: #!/usr/bin/env python # coding:utf-8 import requests from hashlib import md5 class Ch ...

  8. python爬虫爬取get请求的页面数据代码样例

    废话不多说,上代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # 导包 import urllib.request import urllib.pars ...

  9. Python爬虫-02:HTTPS请求与响应,以及抓包工具Fiddler的使用

    目录 1. HTTP和HTTPS 1.1. HTTP的请求和响应流程:打开一个网页的过程 1.2. URL 2. 客户端HTTP请求 3. Fiddler抓包工具的使用 3.1. 工作原理 3.2. ...

随机推荐

  1. 使用RAP2和Mock.JS实现Web API接口的数据模拟和测试

    最近一直在思考如何对Web API的其接口数据进行独立开发的问题,随着Web API的越来越广泛应用,很多开发也要求前端后端分离,例如统一的Web API接口后,Winform团队.Web前端团队.微 ...

  2. Day9 轨道角动量

    转自中山大学电子与信息工程 http://seit.sysu.edu.cn/node/1004 能量.动量(角动量和线动量)光子的基本属性,其中光子角动量包括自旋角动量和轨道角动量(Orbital a ...

  3. java基础-jdk工具包

    1. 标准工具 这些工具都是JDK提供的,通常都是长期支持的工具,JDK承诺这些工具比较好用.不同系统.不同版本之间可能会有差异,但是不会突然就有一个工具消失. 1.1 基础包 (extcheck, ...

  4. MongoDB系列:四、spring整合mongodb,带用户验证

    在前面的两篇博客 MongoDB常用操作练习.springboot整合mongoDB的简单demo中,我们基本上熟悉了mongodb,也把它与spring boot进行了整合并且简单使用.在本篇博客中 ...

  5. iOS 枚举 初体验

    iOS枚举 我的code /*文件名 SC_CDV_OCR.m*/ typedef enum _OCRResultState { OCRResultStateOK = 1, OCRResultStat ...

  6. sql语句基础

    数据库库(DataBase):就是一个存储数据的仓库.为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上.通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据.SQL(Structu ...

  7. python3.7安装pylint

    python3.7安装pylint之"setuptools"版本错误 借鉴:错题集(已解决):pyinstaller报错ModuleNotFoundError: No module ...

  8. 【LUOGU???】WD与数列 sam 启发式合并

    题目大意 给你一个字符串,求有多少对不相交且相同的子串. 位置不同算多对. \(n\leq 300000\) 题解 先把后缀树建出来. DFS 整棵树,维护当前子树的 right 集合. 合并两个集合 ...

  9. [HNOI/AHOI2018]毒瘤

    题目描述 https://www.lydsy.com/JudgeOnline/upload/201804/%E6%B9%96%E5%8D%97%E4%B8%80%E8%AF%95%E8%AF%95%E ...

  10. win10更改无线网卡的MAC地址

    https://blog.csdn.net/qq_31778495/article/details/80932472 前段时间电脑蹭网被禁了MAC地址,故寻找修改MAC地址的方法. 本机配置: win ...