网页 Python,Python 登录

  网页 Python,Python 登录

  #-*-编码:utf-8 -*-

  importsys

  sys.path.append( . )importrequests,JSON from common。base importbase from请求。包裹。URL库3。异常导入InsecureRequestWarning #禁用安全请求警告

  请求。包裹。URL库3。disable _ warnings(insurerequestwarning)_ _ author _ _=曾经的发带冯PATH=https://kyfw.12306.cn

  _ _ all _ _=[ loginic ]class loginic(Base):def _ _ init _ _(self):

  超级(逻辑的,自我的)。__init__()#验证结果

  defcheckYanZheng(自,解):##分割用户输入的验证码位置

  #225,83181,3135,67=225,83,181,31,35,67

  yanStr=solution.replace( ,,)print(校验验证码.)

  checkUrl= https://kyfw。12306 .cn/passport/captcha/captcha-check data={ log in _ site : E ,#固定的

  兰德:是兰德,#固定的

  答案:yanStr #验证码对应的坐标,两个为一组,跟选择顺序有关,有几个正确的,输入几个

  }打印(数据)#发送验证

  cont=self。请求。post(检查URL,data=data,verify=False)#返回数据格式的字符串,用数据模块解析

  dic=cont.json()

  code=dic[结果代码]#取出验证结果,4:成功5:验证失败7:过期

  if str(code)== 4 :返回true else:print(DIC)返回false #发送登录请求的方法

  爆胎自己,用户名,密码):

  yan=self.decode_captcha(网址)

  check=False##只有验证成功后才能执行登录操作

  #未检查时:

  检查=自我。查(颜)如不查:退回600,’验证失败,请重新验证登录URL= https://kyfw。12306 .cn/passport/web/log in data={ userName :用户名,密码:pwd, appid : OTN }打印(数据)

  头={ Origin : https://kyfw。12306 .cn ,用户代理: Mozilla/5.0(Windows NT 6.1;win 64x 64)apple WebKit/537.36(KHTML,像壁虎一样)Chrome/59。0 .3071 .86 Safari/537.36 , Referer : https://kyfw。12306 .cn/OTN/log in/init , Content-Type : application/x-www-form-urlencoded;charset=UTF-8 ,接受:应用程序/json,文本/javascript,*/*;q=0.01}

  结果=自己。请求。post(登录URL,数据=数据,标题=标题)

  dic=result.json()打印(驾驶员信息中心)

  mes=dic[结果消息]#结果的编码方式是统一码编码,所以对比的时候字符串前面加u,或者mes.encode(utf-8)==登录成功进行判断,否则报错

  如果mes==u 登录成功:#获取甜饼干

  r=自我。请求。帖子( https://kyfw。12306 .cn/OTN/登录/用户登录’)

  data={appid: otn}

  r=自我。请求。帖子( https://kyfw。12306 .cn/passport/web/auth/uam tk ,data=data)if r.status_code!=200:返回600,登录验证不通过d=r . JSON()if d . get( result _ code )==0:

  data={tk: d.get(newapptk )

  }

  r=自我。请求。帖子( https://kyfw。12306 .cn/OTN/uamauthclient ,数据=数据)

  d=r . JSON()print(d)if d . get( result _ code )==0:print(恭喜你,登录成功,可以购票!)returnTrueelse:返回600,d . get( result )else:print(DIC。get( result _ message ))返回600,DIC。get( result _ message )def get _ info(self):

  data={_json_att: }

  headers={ Referer : https://kyfw。12306 .cn/OTN/index/initmy 12306 , Origin: https://kyfw.12306.cn , User-Agent : Mozilla/5.0(Windows NT 6.1;win 64x 64)apple WebKit/537.36(KHTML,类似壁虎)铬/59。0 .3071 .86 Safari/537.36 , Content-Type : application/x-www-form-urlencoded }

  r=自我。请求。帖子( https://kyfw。12306 .cn/OTN/modifyUser/initQueryUserInfo ,data=data,headers=headers)if r . status _ code!=200:print(获取购票人信息异常)

  用打开(__tmp/userInfo.html , wb )作为女:

  f.write(r.content)

  f.close()print(获取信息成功)if __name__==__main__ :

  用户名= #12306登录账号

  密码= #12306登录密码

  网址= https://kyfw . 12306 . cn/passport/captcha/captcha-image?log in _ site=e module=log in rand=SJ rand ;

  login=LoginTic()

  d=login.loginTo(userName,pwd)if type(d)!=元组:

  登录。获取信息()否则:打印(d)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: