春节到了教你使用python来抢票回家

  

这篇文章主要介绍了春节到了教你使用python来抢票回家,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  

不知不觉,一年一度的春运抢票大幕已经拉开,想快速抢到回家的车票吗?作为程序员,这些技术手段,你一定要知道。

  

为了让大家更快捷更便利的抢火车票,各种各样的抢票软件应需而生,这类软件大部分都是付费抢票的机制。

  

作为程序员,如何用技术手段抢到回家的票吗?来看看用Python写的抢票脚本。

  

手把手教你用Python抢票回家过年

  

环境介绍

  
      <李> windows 8.1   <李> python3.6.1李   <李> firefox的插件geckodriver.exe李   
  

<强>操作步骤

  

<强>引入要的模块

        从硒进口webdriver #控制浏览器   从selenium.webdriver.common.keys导入密钥#用于给元素赋值   导入时间#时间模块   从selenium.webdriver.support。选择import选择#控制下拉框模块   从进口selenium.webdriver.common.by #寻找元素模块   从selenium.webdriver.support。ui进口WebDriverWait #“显示等待“模块   从selenium.webdriver。支持导入expected_conditions EC #等待条件模块      

<>强登陆模块

  

首先需要选择使用的浏览器,此处以火狐浏览器为例,下载:geckodriver。exe .

  

提到的电台。三种可以直接看这个:

  

车站信息:

  

https://kyfw.12306.cn/otn/resources/js/framework/station_name.js& # 63; station_version=1.9042

  

将geckodriver。exe放到python。exe同级目录下即可(如果有报错的情况下,放一个该文件到与firefox。exe同级目录下,并添加环境变量)

        #可以用输入,也可以直接放入到后面的用户名:密码输入框中   #可以利用标准输入进行批量的操作,此处以个人抢票操作为例   #用户名=str(输入(“请输入你的用户名:"))   #密码=str(输入(“请输入你的密码:'))#这两行可以暂时忽略      火狐浏览器=webdriver.Firefox() #驱动浏览器   browser.get (“https://kyfw.12306.cn/otn/login/init”) #启动浏览器后进入该链接下   browser.find_element_by_id(“用户名”).clear ()   browser.find_element_by_id .send_keys(“用户名”)(“xxxxx”) # xxxxx更换为用户名   browser.find_element_by_id .send_keys(“密码”)(“xxxxx”) # xxxxx更换为密码   time . sleep(10) #此时验证码自行点击,该处设置10秒延迟,可以自己设置   试一试:   browser.find_element_by_id (loginSub) .click() #点击登陆操作,该id为登陆按钮   #或者browser.find_element_by_link_text(“登陆”).click() #标签显示的名称   除了:   浏览器。find_element_by_class_name (“touclick-bgimg touclick-reload touclick-reload-normal”) .click() #试中验证码输入点错了会在此处刷新一次   time . sleep(20) #第二次输入验证码前等待20秒,可以自己设置,第一次输入无误直接跳过   browser.find_element_by_id (loginSub) .click() #重新输入验证码后的点击登陆      

<强>跳转模块

        #默认跳转到首页   time . sleep(2) #此处一般无需设置时间等,待调试代码时使用   clickReserve=browser.find_element_by_link_text('车票预订的).click() #跳转到车票预定页面,该页面可以查询票   time . sleep(2) #出发地点和到达地点设置   #此处价值值为出发时刻的地点,人民党表示北京,更改值值在页面上不加载,基本不耗时间,从页面中也看不到出发地和目的地   #此处内容以爬取,保存在。txt中,每行表示一个地址,打开文档ctrl + F查找即可   jsf=' var=. getelementbyid (fromStation ");。值=" https://www.yisu.com/zixun/BJP " " #此处将人民党更换为你需要的出发地址,价值值在以爬取到stations.txt中,自行查看   browser.execute_script (jsf)   jst=' var=. getelementbyid (toStation ");。值=" https://www.yisu.com/zixun/LZJ " " #终点,同上方法   browser.execute_script (jst)   js=" . getelementbyid (train_date) .removeAttribute(“只读”)”#时间选择时默认为只读,通过JS移除只读属性   browser.execute_script (js) #执行js语句   browser.find_element_by_id (train_date) .clear() #时间元素中默认有提示字,需要先清空   browser.find_element_by_id (train_date) .send_keys(2018-02-01) #按照改格式输入需要查询的时间   搜索=browser.find_element_by_id (query_ticket) .click() #输入好信息时点击查询,该处存在成人票和学生票,默认是成人票,如果购买,对学生票处执行以下语句即可:   # browser.find_element_by_id (xxxx) .click() #对于id还是类或其它自行选择

春节到了教你使用python来抢票回家