本文共 2801 字,大约阅读时间需要 9 分钟。
前言:我想在源文章里加入下面一段来着,但是实在加不上,报什么405,造成安全威胁,不好意思哈各位,这么点内容还另起一章实在不好意思哈。
千万别一直挂着会封ip的,别问我怎么知道的,我不想说T_T
代码如下:
虽然还是存在很多的问题,但是真的不愿意改了,票买到了就没什么动力,大家懂得,上面的代码的确存在问题不好意思:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | # -*- coding: utf-8 -*- """ Created on Fri Dec 04 00:35:24 2015 @author: Ye """ from splinter.browser import Browser from time import sleep #用户名,密码 username = "用户名" passwd = "密码" #cookies值得自己去找,下面两个分别是上海,长沙,怎么找blog中说明了 starts = "%u4E0A%u6D77%2CSHH" ends = "%u957F%u6C99%2CCSQ" #时间格式2016-01-31 dtime = "2016-02-02" #车次,选择第几趟,0则从上之下依次点击 order = 0 ###乘客名 pa = u "乘客名(常用联系人)" ###车次类型 ttype = "GC-高铁/城际" #网址 ticket_url = "https://kyfw.12306.cn/otn/leftTicket/init" login_url = "https://kyfw.12306.cn/otn/login/init" initmy_url = "https://kyfw.12306.cn/otn/index/initMy12306" config_url = "https://kyfw.12306.cn/otn/confirmPassenger/initDc" def login(): b.find_by_text(u "登录" ).click() sleep( 3 ) b.fill( "loginUserDTO.user_name" ,username) sleep( 1 ) b.fill( "userDTO.password" ,passwd) sleep( 1 ) b.execute_script( 'alert("自行输入验证码吧~")' ) print u "等待验证码,自行输入..." sleep( 10 ) def huoche(): global b b = Browser(driver_name = "chrome" ) b.visit(ticket_url) b.execute_script( 'alert("开始刷票喽~~~~")' ) sleep( 2 ) b.get_alert().dismiss() while b.is_text_present(u "登录" ): sleep( 1 ) login() if b.url = = initmy_url: break try : #跳回购票页面 b.visit(ticket_url) #加载查询信息 b.cookies.add({ "_jc_save_fromStation" :starts}) b.cookies.add({ "_jc_save_toStation" :ends}) b.cookies.add({ "_jc_save_fromDate" :dtime}) b. reload () i = 1 #循环点击预订 if order ! = 0 : while b.url = = ticket_url: b.find_by_text(u "查询" ).click() # b.find_by_text(ttype).click() if b.find_by_text(u "预订" ): sleep( 0.3 ) b.find_by_text(u "预订" )[order - 1 ].click() print b.url if b.is_text_present(u "证件号码" ,wait_time = 0.2 ): # print [ i.text for i in b.find_by_text(pa) ] b.find_by_text(pa)[ 1 ].click() else : b.execute_script( 'alert("似乎没有可预订选项")' ) b.get_alert().dismiss() pass else : while b.url = = ticket_url: b.find_by_text(u "查询" ).click() if b.find_by_text(u "预订" ): sleep( 0.3 ) for i in b.find_by_text(u "预订" ): i.click() sleep( 0.1 ) if b.is_text_present(u "证件号码" ): b.find_by_text(pa)[ 1 ].click() else : b.execute_script( 'alert("似乎没有可预订选项")' ) b.get_alert().dismiss() pass b.execute_script( 'alert("能做的都做了")' ) b.get_alert().dismiss() print u "能做的都做了.....不再对浏览器进行任何操作" except Exception: print u "出错了...." if __name__ = = "__main__" : huoche() |
放上来怎么没有缩进了T_T
好吧,还是百度云吧
转载地址:http://swujo.baihongyu.com/