diff --git a/README.md b/README.md index 462e4e0..aa65d6d 100644 --- a/README.md +++ b/README.md @@ -190,12 +190,9 @@ users = xxx train_types = D,G ### start_time:发车时间,可选参数,不指定请删除等号后的值,默认值“00:00--24:00” -### 时间格式 12:00--18:00,有效值如下: -##### 00:00--24:00->00:00--24:00 -##### 00:00--06:00->00:00--06:00 -##### 06:00--12:00->06:00--12:00 -##### 12:00--18:00->12:00--18:00 -##### 18:00--24:00->18:00--24:00 +### 时间格式 hh:mm--hh:mm,例如: +##### 12:00--18:00 +##### 10:03--16:55 start_time = 12:00--18:00 [confirmInfo] diff --git a/config.ini b/config.ini index 4e00d40..7998103 100644 --- a/config.ini +++ b/config.ini @@ -1,83 +1,81 @@ -; config.ini -; 配置信息:请依照注释修改必选项,非必选项可以删除等号后的值 - -## 登陆账号和密码 -[login] -### username:12306登录用户名,必选参数 -username=xxx@qq.com -### password:12306登录密码,必选参数 -password=xxx - -## cookie信息,出发站,目的站 -[cookieInfo] -### starts:对应搜索框出发地,必选参数,请输入中文名称,例如:武汉 -starts=武汉 -### ends:对应搜索框目的地,必选参数,请输入中文名称,例如:南京 -ends=南京 -### dtime:对应搜索框出发日,必选参数,时间格式:年-月-日,例如 2018-01-19 -## 时间格式2018-01-19 -dtime=2018-01-14 - -## order:车次,选择第几趟,0则从上至下依次点击,必选参数,如果要特定车次,需要先找到车次在列表中的次序,有效值如下: -#### 0->从上至下点击 -#### 1->第一个车次 -#### 2->第二个车次 -[orderItem] -order=0 - -## users:乘客姓名,必选参数,中文姓名,支持多个乘客,用英文逗号隔开,例如:张三,李四 -### 乘客姓名需要提前加入到登录的12306账号的联系人中,为了程序自动选择乘客姓名 -[userInfo] -users = xxx - -## 车次类型: -[trainInfo] -### train_types:车次类型,可选参数,默认全部车次,支持多个值,用英文逗号隔开,特别需求的在此指定值,不指定请删除等号后的值,默认是车次不勾选,有效值如下: -#### T->特快 -#### G->高铁 -#### D->动车 -#### Z->直达 -#### K->快车 -train_types = D,G - -### start_time:发车时间,可选参数,不指定请删除等号后的值,默认值“00:00--24:00” -### 时间格式 12:00--18:00,有效值如下: -##### 00:00--24:00->00:00--24:00 -##### 00:00--06:00->00:00--06:00 -##### 06:00--12:00->06:00--12:00 -##### 12:00--18:00->12:00--18:00 -##### 18:00--24:00->18:00--24:00 -start_time = 12:00--18:00 - -[confirmInfo] -## 席别 -### seat_type:席别,可选参数,不指定请删除等号后的值,默认按照12306预定到的车次的席别,有效值如下: -#### 硬座 -#### 硬卧 -#### 软卧 -#### 一等软座 -#### 二等软座 -#### 商务座 -#### 一等座 -#### 二等座 -#### 混编硬座 -#### 特等座 -seat_type = 二等座 - -## 网址,必选参数 -## 此部分不需改动 -[urlInfo] -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 -buy = https://kyfw.12306.cn/otn/confirmPassenger/initDc - -## 路径信息 -[pathInfo] -### driver_name: 浏览器名称,必选参数 -driver_name = chrome -### executable_path: 浏览器驱动路径,必选参数 -### windows路径例如:C:\Users\sanshunfeng\Downloads\chromedriver.exe -executable_path = C:\Users\sanshunfeng\Downloads\chromedriver.exe - - +; config.ini +; 配置信息:请依照注释修改必选项,非必选项可以删除等号后的值 + +## 登陆账号和密码 +[login] +### username:12306登录用户名,必选参数 +username=xxx@qq.com +### password:12306登录密码,必选参数 +password=xxx + +## cookie信息,出发站,目的站 +[cookieInfo] +### starts:对应搜索框出发地,必选参数,请输入中文名称,例如:武汉 +starts=武汉 +### ends:对应搜索框目的地,必选参数,请输入中文名称,例如:南京 +ends=南京 +### dtime:对应搜索框出发日,必选参数,时间格式:年-月-日,例如 2018-01-19 +## 时间格式2018-01-19 +dtime=2018-01-14 + +## order:车次,选择第几趟,0则从上至下依次点击,必选参数,如果要特定车次,需要先找到车次在列表中的次序,有效值如下: +#### 0->从上至下点击 +#### 1->第一个车次 +#### 2->第二个车次 +[orderItem] +order=0 + +## users:乘客姓名,必选参数,中文姓名,支持多个乘客,用英文逗号隔开,例如:张三,李四 +### 乘客姓名需要提前加入到登录的12306账号的联系人中,为了程序自动选择乘客姓名 +[userInfo] +users = xxx + +## 车次类型: +[trainInfo] +### train_types:车次类型,可选参数,默认全部车次,支持多个值,用英文逗号隔开,特别需求的在此指定值,不指定请删除等号后的值,默认是车次不勾选,有效值如下: +#### T->特快 +#### G->高铁 +#### D->动车 +#### Z->直达 +#### K->快车 +train_types = D,G + +### start_time:发车时间,可选参数,不指定请删除等号后的值,默认值“00:00--24:00” +### 时间格式 hh:mm--hh:mm,例如: +##### 00:00--24:00 +##### 18:00--24:00 +##### 10:03--16:55 +start_time = 12:00--18:00 + +[confirmInfo] +## 席别 +### seat_type:席别,可选参数,不指定请删除等号后的值,默认按照12306预定到的车次的席别,有效值如下: +#### 硬座 +#### 硬卧 +#### 软卧 +#### 一等软座 +#### 二等软座 +#### 商务座 +#### 一等座 +#### 二等座 +#### 混编硬座 +#### 特等座 +seat_type = 二等座 + +## 网址,必选参数 +## 此部分不需改动 +[urlInfo] +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 +buy = https://kyfw.12306.cn/otn/confirmPassenger/initDc + +## 路径信息 +[pathInfo] +### driver_name: 浏览器名称,必选参数 +driver_name = chrome +### executable_path: 浏览器驱动路径,必选参数 +### windows路径例如:C:\Users\sanshunfeng\Downloads\chromedriver.exe +executable_path = C:\Users\sanshunfeng\Downloads\chromedriver.exe + + diff --git a/hack12306.py b/hack12306.py index 1e7203a..ec6fb7b 100644 --- a/hack12306.py +++ b/hack12306.py @@ -176,7 +176,15 @@ def searchMore(self): # 选择发车时间 print(u'--------->选择的发车时间', self.start_time) if self.start_time: - self.driver.find_option_by_text(self.start_time).first.click() + try: + self.driver.find_option_by_text(self.start_time).first.click() + except: + self.driver.execute_script("""const range = '{time_range}'; + const option = document.createElement( 'option' ); + option.value = range; + option.innerText = `${range.substring(0, 2)}:${range.substring(2, 4)}--${range.substring(4, 6)}:${range.substring(6, 8)}`; + cc_start_time.add(option); + cc_start_time.selectedIndex = cc_start_time.length - 1;""".replace('{time_range}', self.start_time.replace(':', '').replace('-', ''))) else: print(u"未指定发车时间,默认00:00-24:00")