这一篇文章,我将从头到尾教大家使用c#模拟网页面登陆12306网站,自动刷票,选择订票人,到最后一步提交订单.研究过HTTP协议的童鞋们都知道,我们在访问网站时,是有两种方式的,POST和GET方式,HTTP协议是TCP/IP的一部分,有兴趣的可以使用Socket通讯可以模拟出HTTP的访问机制.我们再说POST和GET方式,在访问一个页面时,浏览器会提交一个本地cookie提交到网站服务器,cookie的作用可以是保存我们登陆网站成功后取得的一串钥匙,也可以是其他的一些重要的信息.这是至关重要…
悲催的12306,彻底沦为各路抢票软件的服务提供方.元旦伊始,纯粹12306官网及APP抢票,愈一周的时间,仅到手一张凌晨3:55回家的站票.为远离脑残,无奈选择抢票软件,预购年后返沪车票.BTW,研究一下抢票脚本的实现思路,参考:(https://juejin.im/post/5b116504f265da6e0636cbc2 - Python3.6实现12306火车票自动抢票). 在原作者之上,对执行代码做了以下处理: 删除短信/邮件通知功能 删除控制台输入功能 新增登陆cookie的刷新 新…
看web看多了,想写写页游的外挂,其实原理是一样的,就是端口不一样协议字段你不知道,而这也提高了点技术门槛,看我们来一点一点突破这些门槛,这次我们来用python发包模拟flash的客户端登陆. 以热血三国2为例,热血三国2是一款balabalaba自己查去吧的游戏. step1 : 在sg2.ledu.com注册个账户  略过...step2 : 登陆游戏,wireshark抓包分析    以双线784服为例,游戏页面地址http://s784.sg2.ledu.com/,现在游戏一般都是联运…
有时候需要获得网页的 js 执行后的源代码,或者模拟网页输入,如点按钮输入文字. 如果需要实现,那么就需要用 WebView ,使用方法很简单. 首先创建一个 WebView ,接下来的所有输入都需要在 NavigationCompleted 之后才可以使用. 所以我就在构造方法使用下面代码 webView.Navigate(new Uri("https://www.bing.com/")); webView.NavigationCompleted += webView_Navigat…
前面的话: 1.第一次尝试爬虫,登陆12306,有不足的地方,望大家留言告知,谢谢. 2.前面引入了一个requests模块,我不多说,大家都知道干啥的.还有config是我的一个配置文件,因为其中涉及到账号密码. 3.每一部分都注释的比较清楚,大家应该都能看得懂,发完这篇文章后,会继续去研究,待下一次发一个完整版的抢票代码. import requestsimport config # request 的 cookie 保存person = requests.Session() # 1. 访问…
ASP.NET -- WebForm -- Cookie的使用 ASP.NET -- WebForm --  Cookie的使用 Cookie是存在浏览器内存或磁盘上. 1. Test3.aspx文件 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test3.aspx.cs" Inherits="Test3" %> <!DOCTYPE html…
我们通过网页上传一些特殊数据的时候,由于必填项众多,数量量大的时候,会发现工作相当繁琐,前段时间做了一个winform内嵌webBrowser模拟网页上传文档的小工具,发现了许多问题,总结一下: 先说明的是文档是用Excel指定格式制成的表格,数据是通过循环表格数据行上传的. 需求是如果文档已经上传那么必须提示,但上传成功不必提示(因为循环上传的话会弹出很多提示框). 代码如下:添加引用 在扩展程序集中找到Microsoft.mshtmlusing mshtml; 在窗体类上面贴标签: [Com…
又是一年一度的春运抢票季,不管你是北上.南下或者东进,在外漂泊了一年,有钱没钱总是要回家过年的. [图片来源于网络] 吐槽:12306抢票的悲伤 据说12306改版了,新版本里面除了UI这些面儿上的改动,还加入了自动刷票.自动提交订单等实用的功能,并且推出了手机购票软件,当真是下了一番真功夫!这里对12306订票系统的工程师们表示感谢! 但是,等你真的去订票的时候,你遇到的错误可能是这样的: 也可能是这样的: 或者是这样的: 运气好点的能见到购票失败的提示: 这里真心的恭喜那些抢票成功的同学们!…
时隔一年多,终于朋友的忽悠下吧抢票Demo的最后一步完善了,与2014年1月9日成功生成车票. Demo仅经过自己测试,并未在高峰期进行测试,代码质量很差,因为赶工,套用去年模板并未使用设计模式. 代码存在如下BUG: 1)代码使用 .net 4.5的事件,如果使用4.0或以下的同学,请根据错误提示,更改事件即可.已上传两个版(.net4.0 .net4.5)本. 2)添加.刷新常用联系人功能缺失,按钮已屏蔽.请在官网添加后,重新登录软件即可刷新. 3)验证码为手动输入,不支持自动识别.未做原因…
基础知识学习 目标: 通过python程序实现自动登录下单功能 知识点: Selenium + 云打码 + Python 学习链接: 1. Python学习--Selenium模块 2. Python学习--打码平台 3. Python系统学习梳理_[All] 需求分析 Chrome浏览器:71.0.3578.98_chrome_installer.exe 12306官网: https://www.12306.cn/index/index.html # 选择时间,点击确定,查询列表,获取列表页的…
使用说明 程序运行开始,需要输入出发地,目的地,出发时间,乘客信息,车次:乘客信息和车次可以输入多个 刚刚开始学习爬虫,selenium仅仅是解放了双手,运行效率不是很高: 程序运行时会打开chrome浏览器,因为使用的是chrome的浏览器驱动: 相关文档 https://selenium-python.readthedocs.io/installation.html#introduction 代码示例 # encoding: utf-8 from selenium import webdri…
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' 利用splinter写的一个手动过验证及自动抢票的例子, 大家可以自己扩展或者弄错窗体.web端. 本例子只做参考. 本代码发布于2018.12.18(如果报错请查看官网是否改动) ''' import re from splinter.browser import Browser from time import sleep import sys import httplib2 from url…
Python12306抢票脚本 本脚本使用一个类来实现所有代码,大体上分为以下几个模块及其步骤:- 初始化对象属性(在抢票前进行的属性初始化,包括初始化浏览器模拟对象,个人信息等).- 建立模拟浏览器,模拟浏览器进行cookie等存储.- 验证模块:    - 获取验证图片到本地    - 将8个图片坐标位置改装成易于输入的1—8的位置编号,输入对应的位置号    - 发送请求进行后台校验- 登录模块:    - 输入账号密码,请求服务器    - 获取apptk授权码    - 授权通过,成功…
[2018年1月7日 GitHub 趋势] No.1:yyx990803 / build-your-own-mint 单日 714 星 使用 Plaid,Google 表格和 CircleCI 构建您自己的个人财务分析.事关账户安全,大家自行评估吧~ GitHub 地址:https://github.com/yyx990803/build-your-own-mint No.2:adam / trilium 单日 486 星 Trilium Notes是一个分层笔记应用程序,专注于构建大型个人知识…
本文为开源实验性工程:“github.com/GuoZhaoran/spikeSystem”的配套文章,原作者:“绘你一世倾城”,现为:猎豹移动php开发工程师,感谢原作者的技术分享. 1.引言 Go语言的出现,让开发高性能.高稳定性服务端系统变的容易,与高贵冷艳的Erlang语言不同的是,Go语言简单易学,在高性能服务端架构中的应用越来越广泛. 对于即时通讯(IM系统.消息推送系统等高性能实时通信等)等场景下,Go语言已经被越来越多的用于核心通信模块中.本文内容虽是从秒杀系统谈起,并未直接涉及…
十一将至,你买到回家的火车票了吗?如果没有,你可以试着打开 GitHub,在搜索栏键入 12306 的关键词,我相信你会发现一个新大陆.没错,这里有 1572 个抢票项目.它们大多用 Python.JavaScript.Java 写成.其中,名为 testerSunshine 12306 的项目,标星甚至即将破万.网友表示亲测好用,再也不用买加速包了. 用 Python 抢票在技术圈已经屡见不鲜了.在更新日志中,我们了解到,testerSunshine 12306 的最早记录是在 2017 年…
郑重声明: 本文仅供学习使用,禁止用于非法用途,否则后果自负,如有侵权,烦请告知删除,谢谢合作! 开篇明义 本文针对自主开发的抢票脚本在抢票过程中常常遇到的请求无效等问题,简单分析了 12306 网站的前端加密算法,更准确的说,是探究 RAIL_DEVICEID 的生成过程. 因为该 cookie 值是抢票请求的核心基础,没有它将无法正确发送请求,或者一段时间后就会到期失效需要重新获取,或者明明更改了浏览器用户代理(navigator.userAgent)标识却还是被限制访问... 因为它并不是…
GitHub + circleCI 自动构建/自动部署, 这里略过了单元测试,以部署 laravel 应用为例子 比起 gitlab + ansible + genkins 操作起来节省了很多硬件资源,感谢 微软 免费了 GitHub 私有仓库 1.GitHub 相关 a.创建 github 仓库(现在可以免费创建私有仓库了,个人项目能满足了) b.配置 SSH 公钥,可以走 SSH 渠道免密 拉取代码 2.circleCI 相关 a.github 登陆 https://circleci.com…
一.基于HTTPS协议的12306抢票软件设计与实现--实现效果 二.基于HTTPS协议的12306抢票软件设计与实现--相关接口以及数据格式 三.基于HTTPS协议的12306抢票软件设计与实现--垂直查询效果分享 哎,又过春节了,同志们又要抢票回家了,这票卖的可真快啊,瞬间的功夫就没有票了,一票难求啊! 这两天闲着没事,刚好又要抢春节的票了.就把原来写的抢票软件给打开试了一下,发现居然不能查票了.于是就又改了一下. 事实上是改了两下,一是:让原来的程序能够用起来(适应新接口),而是加上了水平…
12306自动抢票系统——ER图及数据表 1. 抢票系统ER图 数据表 2.抢票系统数据结构表 (1)列车表 Trains table 字段名 数据类型 说明 是否为主键 Train_id string 列车号 是 Start string 起始站 否 End string 终点站 否 Start_time date 起始时间 否 End_time date 到达时间 否 Chexiang_num int 车厢数 否 Max_speed float 最高时速 否 (2)车站表 Stations…
抢票是并发执行 多个进程可以访问同一个文件 多个进程共享同一文件,我们可以把文件当数据库,用多个进程模拟多个人执行抢票任务 db.txt {"count": 1} 并发运行,效率高,但竞争写同一文件,数据写入错乱,只有一张票,都卖成功给了10个人 #文件db.txt的内容为:{"count":1} #注意一定要用双引号,不然json无法识别 from multiprocessing import Process import time import json cla…
Tomcat服务器 具有一个常用的功能: 即自动编译,自动发布,自动部署功能. 问题: 当我们第一次发布程序以后,我们增删改Servelt,Java,.xml等文件,都必须重启Tomcat,如果项目巨大,那么 这是在浪费时间! 分析: Tomcat 自带了自动部署功能,只要我们在Tomcat安装目录下的Server.xml中的<host>中添加<context...>标 签即可. 实例: Tomcat安装目录: C:\Program Files\Apache Software Fo…
""" 抢票! 多个用户在同时读写同一个数据 """ from multiprocessing import Process,Lock import json,time,random # 查看余票 def show_ticket(name): time.sleep(random.randint(1,3)) with open(r"ticket.json","rt",encoding="utf-8&…
web worker工作原理图: 抢票系统思维导图: 思路:五个人(5个div窗口模拟)同时进行抢票,有百分之十的几率可以抢到票,抢到票后对应的窗口(即随机生成的数大于等于0小于9的情况)会编程天蓝色,没抢到票的窗口(即随机生成的数大于9小于100的情况)会变成红色 HTML源码: <!DOCTYPE html><html><head> <meta charset="utf-8"/> <title>html5拖拽效果</…
# -*- coding: utf-8 -*- from splinter.browser import Browser from time import sleep import traceback #初始化信息 # 用户名,密码 username = u"用户名" passwd = u"密码" # cookies值得自己去找 starts = u"杭州,HZH" ends = u"黄石,HSN" # 时间格式2016-03…
1.互斥锁: 互斥锁:Lock 原理就是把并发变成串行,一个一个运行,不错乱,但效率低 保证多个进程修改一块数据时,大家是一个一个修改,不错乱 mutex.acquire() mutex.release() from multiprocessing import Process,Lock import time def task(name,mutex): mutex.acquire() print('%s 1'%name) time.sleep(1) print('%s 2'%name) tim…
360就是牛逼哄哄的...... 但是最近在使用360浏览器抢票的时候还是发现了一些体验不好的地方,比如搞着搞着就退出了登录,有时候能帮你自动登录进去,但是自动登录之后又不会帮你自动开始抢.然后验证码几次失败之后 流程就停住了, 所以必须的有人看守. 由于360浏览器是使用Chrome内核 而且提供了调试功能,所以我们写一小段js让360达到无人值守抢票的目的 setInterval(function () { if ($('.username').html() != undefined &&am…
今天呕心沥血花了8个小时给大家带来kettle工作中最常见的四种复杂实例,90%的项目用到这4种实例都可以解决. 4种实例种还有2种通用kettle工具,使用这两种通用工具实例,可以直接修改相应的配置文件,完成数据的同步. 下面就一一给大家带来这4种实例,完全原创且可以拿来直接使用,废话不说,下面直接给大家带来具体实例: KETTLE4个工作中有用的复杂实例--1.数据定时自动(自动抽取)同步作业 一.表数据自动同步 1.为了给大家更直观的展示,[大喇叭玩转数据库]首先在数据库创建4张表,表结构…
导读 相信大家应该都有抢火车票的经验,每年年底,这都是一场盛宴.然而你有没有想过抢火车票这个算法是怎么实现的呢? 应该没有吧,咱们今天就来一一探讨.其实并没有你想的那么难 bitmap与位运算 redis的bitmap基本使用咱们之前已经介绍过了,如果不是很熟悉的朋友可以看看这里 redis bitmap的基本操作和应用 今天在这里咱们主要是先回顾一下位运算 12306抢票算法详解 我们以北京到西安这趟高铁为例,比如我的路线就是从北京到西安,车上如果只剩最后一张票了,那么如果有其他人,在北京到西…
目录 一:进程理论知识 1.理论知识 二:什么是进程? 三:僵尸进程与孤儿进程 1.僵尸进程 四:守护进程 1.什么是守护进程? 2.主进程创建守护进程 3.守护进程 五:互斥锁(模拟多人抢票) 1.什么是是锁? 2.什么是互斥锁? 3.为什么要使用互斥锁? 4.常见问题 5.注意 6.Lock模块 7.互斥锁(模拟多人抢票) 8.总结(抢票系统)解析 六:IPC机制(进程间通信)--队列 1.队列概况 2.Queue概念介绍 3.注意 4.(消息队列)代码搭建 七:(IPC消息队列)实现进程通…