python爬虫抢火车票_如何用python写一个简单的12306抢票软件|python 爬火车票 教程...

news/2024/12/22 19:31:44/

python 如果抓取验证码图片 类似12306的登录验证码图片

这个以前做次。最大的麻烦是码的识别算法的识别率太低。12306那种网站登陆错3次就限制你20分钟。所以除非你有33%以上的识别率否则不要尝试了。

通常做法是另存验证码图片,通常收集几十个,然后训练自己的识别算法。我曾经用PIL库自己做过识别算法,最高只有10%的识别率。效率还可以,一秒可以识别10次左右。主要是图片很小,所以处理起来也快。

验证码识别还有多少公开的算法,只能用来参考。不过真正识别都需要自己根据实际情况去训练改进算法。

如何用python写一个简单的12306抢票软件

#coding=utf-8

from selenium import webdriver

from time import sleep

import traceback

TICKET_URI = 'https://kyfw.12306.cn/otn/leftTicket/init'

LOGIN_URI = 'https://kyfw.12306.cn/otn/login/init'

MY_URI = 'https://kyfw.12306.cn/otn/index/initMy12306'

LOGIN = u'登录'

from splinter.browser import Browser

from time import sleep

import traceback

TICKET_URI = 'https://kyfw.12306.cn/otn/leftTicket/init'

LOGIN_URI = 'https://kyfw.12306.cn/otn/login/init'

MY_URI = 'https://kyfw.12306.cn/otn/index/initMy12306'

LOGIN = 'login_user'

def login():

brw.find_element_by_id(LOGIN).click()

sleep(3)

uname = '123456789qq.com'

pwd = 'xxxyyyzzz'

brw.find_element_by_id('username').send_keys(uname)

sleep(1)

brw.find_element_by_id('password').send_keys(pwd)

sleep(1)

while True:

if brw.current_url = MY_URI:

sleep(1)

else:

break

def addCookie(cklist):

li = list()

for d in cklist:

if d['name'] == '_jc_save_toStation' or d['name'] == '_jc_save_toDate' or d['name'] == '_jc_save_fromStation':

li.append(d)

return li

def book():

global brw

brw = webdriver.Chrome()

brw.set_window_size(1366, 768)

brw.get(TICKET_URI)

sleep(3)

while brw.find_element_by_id(LOGIN):

login()

if brw.current_url == MY_URI:

break;

try:

brw.get(TICKET_URI)

sleep(2)

# set src

brw.find_element_by_id('fromStationText').clear()

brw.find_element_by_id('fromStationText').click()

brw.find_element_by_id('fromStationText').send_keys(u'合肥南')

sleep(3)

# set dst

brw.find_element_by_id('toStationText').clear()

brw.find_element_by_id('toStationText').click()

brw.find_element_by_id('toStationText').send_keys(u'')

sleep(3)

# set left date

print('please click train date')

sleep(5)

cke = brw.get_cookies()

li = addCookie(cke)

for x in li:

brw.add_cookie(x)

brw.refresh()

count = 0

success = False

if not success:

while brw.current_url == TICKET_URI:

brw.find_element_by_id('query_ticket').click()

sleep(2)

print(u'第%d新' % count)

count = 1

brw.find_element_by_partial_link_text('D3057')

except Exception as e:

print(traceback.print_exc())

if __name__ == "__main__":

book()

我写了个python读取12306网页的脚本本地运行良好,一旦提交到GAE就报错

在python中,一般我用urllib的urlopen来打开URL并抓取网页内容或者服务器的数据 !

但是在GAE中不能这样做,否则会报“访拒绝”字样的错误,主要原因是python中的urlopen使用了socket来连接,GAE处于安全和效率等方面的考虑,禁止使用urlopen,而以 urlfetch替代之,后者则是基于HTTP连接的!

你可以参考下面这个对代码进行修改:from google.appengine.api import urlfetch

# ... ...

url = "http://www.python.org"

result = urlfetch.fetch(url)

if result.status_code == 200:

doc = result.content

do_something(doc)

如果解决了您的问题请采纳!

如果未解决请继续追问!

如何用python写一个简单的12306抢票软件

直接用流燕抢票软件

如何用python写一个简单的12306抢票软件

什么12306

版权声明:本站所有文章皆为原创,欢迎转载或转发,请保留网站地址和作者信息。


http://www.ppmy.cn/news/918466.html

相关文章

12306Bypass-分流抢票 火车票抢票攻略

2019独角兽企业重金招聘Python工程师标准>>> 12306Bypass-分流抢票 火车票抢票攻略 为什么要写这个 想分享些心得,让更多有缘异乡人能抢到回家的票。算是为社会做出点贡献吧(实际上,就像12306bypass 作者说的,帮助别人抢票也只是让部分人优先得到票而已,总会…

12306火车票抢票Python代码最新完整版发布,五一抢票就靠它了!

语言版本:Python 1、自动登录12306并保持Cookie 2、自动实现抢购设置的某日期的某车次的票 3、攻克排队系统陷阱,避免进入排队系统 4、循环监控某车次的票,直到有票,自动抢购 5、抢票时若出现异常,自动重新抢票&a…

python写抢火车票软件_用 Python 代码自动抢火车票

市场上很多火车票抢票软件大家应该非常熟悉,但很少有人研究具体是怎么实现的,所以觉得很神秘,其实很简单。下面使用Python模拟抢票程序,给大家揭秘抢票到底是怎么回事。 该代码仅供参考,主要用于大家沟通交流&#xff…

python编写12306窗体抢票软件(一)

python编写12306窗体抢票软件(一) 第一次写博客,拿写过的软件练个手~ 12306是学习爬虫的比较好的一个练手网站。本文带你重零开始编写一个python窗体,十分简单,小白进来看哈~这节只说怎么编写窗体界面,下节…

线程实现火车票抢票程序

<span style"font-size:14px;">package H13; /*** 编写程序&#xff0c;实现火车票抢票程序&#xff0c;初始共50张车票&#xff0c;有三个线程进行处理&#xff0c;* 分别间隔10ms、20ms、50ms抢一张票&#xff0c;在车票数量为0时&#xff0c;就不再继续抢票…

python开发抢票软件_12306抢票软件run python版

12306抢票软件run全新推出&#xff0c;基于python爬虫打造12306抢票神器&#xff0c;目前支持全自动打码候补车票&#xff0c;只要根据提示将12306打包成exe可执行文件,即可轻松使用~最近12306的反爬机制检测系统比较狠&#xff0c;小伙伴们刷票时长可以设置长一点&#xff0c;…

抢票软件项目开发

项目需求分析 整个项目应实现&#xff1a;浏览器自动登录12306网站,查询余票,车票预订,到自动提交系统支付的功能。 具体包括&#xff1a;登录界面的cookie处理(保持登录界面)、登录时的验证码处理、余票查询、提交订单等部分。 分析&#xff1a; 借助工具fiddler,作为整个数…

c语言编写一个火车票,C语言-多线程抢火车票软件

//今晚内容&#xff1a;C语言-抢火车票软件 //讲课老师&#xff1a;范志军 QQ&#xff1a;208824435 #include #include HANDLE hMutex;//互斥锁变量 int a50;//设定50张车票 DWORD WINAPI Func(LPVOID lpParamter)//多线程的功能 { while(a>0) { WaitForSingleObject(hM…