下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
#!/usr/bin/env python
# -*- encoding:utf-8 -*-
'''
Created on 2014年12月30日
@author: liujichao
'''
import sys
import logging
from splinter import Browser
import time
logging.getLogger().setLevel(logging.ERROR)
reload(sys)
sys.setdefaultencoding('utf-8') # @UndefinedVariable
browser = Browser()
def checkTick():
while True:
if int(time.strftime("%H",time.localtime())) in [23,1,2,3,4,5,6]:
print "23点到7点不能登录"
time.sleep(200)
continue
pass
break
pass
browser.visit("https://kyfw.12306.cn/otn/login/init")
browser.find_by_id("username").fill("用户名")
browser.find_by_id("password").fill("密码")
browser.find_by_id("randCode").click()
while True:
while len(browser.find_by_id("randCode").value)<4 or not browser.find_by_id("i-okmypasscode1").visible:
time.sleep(1)
pass
browser.find_by_id("loginSub").click()
warnAlert=browser.find_by_id("content_defaultwarningAlert_id")
if len(warnAlert)!=0 and warnAlert.visible:
browser.find_by_id("qd_closeDefaultWarningWindowDialog_id").click()
browser.execute_script('''refreshImg('login','sjrand');''')
browser.find_by_id("randCode").click()
continue
pass
break
pass
while browser.url !="https://kyfw.12306.cn/otn/index/initMy12306":
print browser.url
time.sleep(1)
pass
browser.visit('https://kyfw.12306.cn/otn/leftTicket/init')
#browser.fill('kw','splinter - python acceptance testing for web applications')
#browser.execute_script("$('body').empty()")
#print browser.find_by_id("login_user")
#browser.find_by_id("login_user").click()
#print browser.cookies()
browser.find_by_id("fromStationText").click()
browser.execute_script('''$(\"#ul_list1 > li:nth-child(1)\").click();
''')
browser.find_by_id("toStationText").click()
browser.execute_script('''
$(\"#nav_list3\").click();
$(\"a.cityflip:nth-child(1)\").click();
$(\"#ul_list3 > li:nth-child(21)\").click();
''')
browser.find_by_value("G").check()
#browser.find_by_id("train_date").click()
#time.sleep(10)
browser.execute_script('''
setInterval(function(){
$.ajax({
type: 'post',url: '/otn/login/checkUser',data: {
},beforeSend: function (c) {
c.setRequestHeader('If-Modified-Since','0');
c.setRequestHeader('Cache-Control','no-cache')
},success: function (e) {
if (!e.data.flag) {
location.href="https://kyfw.12306.cn/otn/login/init";
}
}
});
},2000);
''')
while True:
if browser.url=="https://kyfw.12306.cn/otn/login/init":
#被踢了
print "被踢了"
raise Exception("被踢")
pass
browser.execute_script('''$("#train_date").val("2015-02-18");''')
browser.find_by_id("query_ticket").click()
browser.execute_script("CLeftTicketUrl = 'leftTicket/queryT?_r="+str(time.time())+"';")
browser.execute_script('''$("#train_date").val("2015-02-18");''')
warnAlert=browser.find_by_id("content_defaultwarningAlert_id")
if len(warnAlert)!=0:
browser.find_by_id("qd_closeDefaultWarningWindowDialog_id").click()
pass
browser.execute_script('''
iflagt=false;
$('#queryLeftTable tr').each(function () {
trId = $(this).attr('id');
if (/^ticket/.test(trId)) {
tid=trId.replace("ticket_","");
tranCode=$("#"+trId+"_train").find("a").text()
if("G655,G6741,G67,G517,G491,".indexOf(tranCode+",")!=-1){
//二等座位
ZEtxt=$("#ZE_"+tid).text();
zcount=0;
try
{
zcount=parseInt(ZEtxt)
} catch (e) {zcount=0;}
console.log(ZEtxt);
txtInfo=$("#"+trId+">.no-br").text()
if((ZEtxt=="有" || zcount>1) && txtInfo!="23:00-07:00系统维护时间"){
$(this).find(".btn72").click();
iflagt=true;
return false;
}
}
}
});
''')
if browser.evaluate_script("iflagt;"):
break
pass
else:
print "无"
pass
time.sleep(3)
pass
while browser.url !="https://kyfw.12306.cn/otn/confirmPassenger/initDc":
print browser.url
time.sleep(1)
pass
browser.find_by_id("gd").click()
browser.find_by_id("normalPassenger_0").check()
browser.find_by_id("normalPassenger_24").check()
browser.find_by_id("randCode").click()
while len(browser.find_by_id("randCode").value)<4:
time.sleep(1)
pass
browser.is_element_not_present_by_id(id,wait_time=None)
while not browser.find_by_id("checkticketinfo_id").visible:
time.sleep(0.5)
pass
browser.find_by_id("qr_submit_id").click()
#browser.find_by_id("fromStation").fill("BXP")
#browser.find_by_id("train_date").fill("BXP")
#browser.find_by_id("query_ticket").click()
#print browser.html
print browser.cookies.all()
pass
if __name__ == '__main__':
while True:
try:
checkTick()
except Exception,e:
browser.quit()
browser = Browser()
print e
pass
pass
pass
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。