Python怎么实现12306登录功能

  介绍

这篇文章主要介绍Python怎么实现12306登录功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Python的五大特点是什么

Python的五大特点:1。简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2。面向对象,与其他主要的语言如c++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。3。可移植性,Python程序无需修改就可以在各种平台上运行。4。解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5。开源,Python是牙线(自由/开放源码软件)之一。

具体代码如下所示:

# !/usr/bin/env  Python   import 请求   import  urllib.parse   import 随机   import 时间   时间=req  requests.session ()   import 系统   import 再保险   import  urllib3   import  getpass  #,密文输入   urllib3.disable_warnings ()   #,登陆- - - - - - - - - - - - - - - - - - - - - - - - -   时间=apptklist  []   时间=newStrList  []   def  signin ():=,,ran  random.uniform (1, 0)   ,imgUrl =, (& # 39; https://kyfw.12306.cn/passport/captcha/captcha-image?& # 39;   ,,,& # 39;login_site=E&模块=login&兰德=sjrand& % & # 39;, %,跑)   ,打印(imgUrl)=,,imgresponse  req.get (url=imgUrl,验证=False)=,codeimg  imgresponse.content=,fn 开放(& # 39;code.png& # 39;,, & # 39; wb # 39;)   ,fn.write (codeimg)   ,fn.close ()=,codeStr 输入(& # 39;请输入验证码的坐标:& # 39;)=,a  & # 39; & # 39;=,b  & # 39; & # 39;=,c  & # 39; & # 39;=,d  & # 39; & # 39;=,e  & # 39; & # 39;=,f  & # 39; & # 39;=,g  & # 39; & # 39;=,h  & # 39; & # 39;   ,if  & # 39; 1 & # 39;,拷贝codeStr:   a 才能=,& # 39;37岁,37岁的& # 39;   ,if  & # 39; 2 & # 39;,拷贝codeStr:   时间=b 才能;& # 39;100年,37岁的& # 39;   ,if  & # 39; 3 & # 39;,拷贝codeStr:   时间=c 才能;& # 39;180年,37岁的& # 39;   ,if  & # 39; 4 & # 39;,拷贝codeStr:   时间=d 才能;& # 39;250年,37岁的& # 39;   ,if  & # 39; 5 & # 39;,拷贝codeStr:   时间=e 才能;& # 39;37100年,& # 39;   ,if  & # 39; 6 & # 39;,拷贝codeStr:   时间=f 才能;& # 39;100100年,& # 39;   ,if  & # 39; 7 & # 39;,拷贝codeStr:   时间=g 才能;& # 39;180100年,& # 39;   ,if  & # 39; 8 & # 39;,拷贝codeStr:   时间=h 才能;& # 39;250100年,& # 39;=,newCodeStr  a + b + c + d + e + f + g + h=,,newStr  newCodeStr (: 1)   ,newStrList.append (newStr)=,url  & # 39; https://kyfw.12306.cn/passport/captcha/captcha-check& # 39;   ,data =, {   & # 39;才能回答# 39;:newStr,   & # 39;才能login_site& # 39;: & # 39; e # 39;   & # 39;才能兰德# 39;:& # 39;sjrand& # 39;   ,}   ,headers =, {   & # 39;才能用户代理# 39;:,& # 39;Mozilla/5.0, (Windows  NT  10.0;, Win64;, x64), AppleWebKit/537.36, (KHTML, like 壁虎)& # 39;   ,,,,,& # 39;,Chrome/63.0.3239.108  Safari/537.36 & # 39;   ,}=,,response  req.post (url=url, data=https://www.yisu.com/zixun/data,标题=头,验证=False)   打印(“检测图片- - - - - - - - - - - -”,url)   打印(response.text)   结果=response.json ()   如果结果“result_code”==?”:   打印(“验证码校验成功”)   其他:   打印(“验证码校验失败,请注意填写正确的坐标”)   signin ()   返回   用户名=输入(“请输入您的用户名:”)   #=输入密码(“请输入您的密码:”)   密码=getpass。getpass(“请输入您的密码:”)   loginData={   用户名:用户名、   “密码”:密码,   “appid”:“otn”   }   头={   “主机”:“kyfw.12306.cn”,   “推荐人”:“https://kyfw.12306.cn/otn/login/init”,   “用户代理”:“Mozilla/5.0(麦金塔电脑;Intel Mac OS X 10 _13_2)”   “AppleWebKit/537.36 (KHTML,像壁虎)Chrome/63.0.3239.132 '   “Safari/537.36”   }   响应=req.post (“https://kyfw.12306.cn/passport/web/login”, data=loginData header=头,验证=False)   打印(' - - - - - - - - - - - - - - - -登陆中- - - - - - - - - - - - - - - - - - - - - -”)   打印(“https://kyfw.12306.cn/passport/web/login”)   打印(“响应”,response.text.encode (utf - 8) .decode (utf - 8))   fd=开放(”定位。html”,“世行+”)   fd.write (response.content)   yzData={   “appid”:“otn”   }   响应=req.post (“https://kyfw.12306.cn/passport/web/auth/uamtk”, data=yzData header=头,验证=False)   打印(' - - - - - - - - - - - - - - - - - - - - - - - -第一次验证- - - - - - - - - - - - - - - - - - - - - - - -”)   打印(response.text)   #打印(typeof响应,类型(响应))   loginMessage=response.json () (“newapptk”)   打印(loginMessage, loginMessage=')   #第二次验证开始+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   yz2Data={   “tk”: loginMessage   }   响应=req.post (“https://kyfw.12306.cn/otn/uamauthclient”, data=yz2Data header=头,验证=False)   打印(' - - - - - - - - - - - - - - - - - - - - - - - -第二次验证- - - - - - - - - - - - - - - - - - - - - - - -”)   打印(response.text)   apptk=response.json () (“apptk”)   apptklist.append (apptk)   def购买():   打印(newStrList)   要求的事情。标题(“推荐人”)=' https://kyfw.12306.cn/otn/leftTicket/init '   结果=req.post (“https://kyfw.12306.cn/otn/login/checkUser”)   打印(' - - - - - - - - - - - - - - - - -购票系统- - - - - - - - - - - - - - - -”)   打印(result.text)   打印(“验证登录状态成功checkUser”)   头={   “推荐人”:“https://kyfw.12306.cn/otn/leftTicket/init”,   “用户代理”:“Mozilla/5.0 (Windows NT 10.0;WOW64) AppleWebKit/537.36 '   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Python怎么实现12306登录功能