练习js——自动化实现12306火车票查询

# !/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2019/12/1 09:03
# @Author : "小多肉"
# @Email : [email protected]
# @File : task1127.py
# @Software: PyCharm
import time
from datetime import datetime, timedelta

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.12306.cn/index/")
# 等待出发地选择框出现
# WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.ID,"fromStationText")))
time.sleep(2)
#选择出发地
fromStation = ‘福州‘   #出发地汉字
fs = ‘FZS‘   # 出发地代码
fromStation_js = """
document.getElementById(‘fromStation‘).value = arguments[0];  // 隐藏的出发地元素,value写入出发地代码
var from = document.getElementById(‘fromStationText‘);
from.className = "input inp-txt_select";    // 输入出发地后的class改成input inp-txt_select
from.value = arguments[1];
"""
driver.execute_script(fromStation_js,fs,fromStation)

#选择目的地
toStation = ‘长沙‘    # 出发地汉字
ts = ‘CSQ‘  # 出发地代码
ele_toStation = driver.find_element_by_id("toStationText")
ele_ts = driver.find_element_by_id("toStation")
toStation_js = """arguments[1].value=arguments[2];
var to = arguments[0];
to.className = "input inp-txt_select";
to.value = arguments[3];
"""
driver.execute_script(toStation_js,ele_toStation,ele_ts,ts,toStation)

# 选择出发日期
# 当前日期+10天,转成字符串格式
date = str(datetime.now().date()+timedelta(days=10))
# 使用js修改日期框为可输入状态,传入日期
date_js = """
var date = document.getElementById(‘train_date‘);
date.readOnly = false;
date.value = arguments[0];
"""
driver.execute_script(date_js,date)
# WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.ID,"search_one")))
# 点击查询按钮
driver.find_element_by_id("search_one").click()
time.sleep(1)
driver.quit()

原文地址:https://www.cnblogs.com/momoon/p/12228899.html

时间: 2024-10-13 19:52:08

练习js——自动化实现12306火车票查询的相关文章

聚合数据iOS SDK 12306火车票查询订票演示示例

1,将聚合数据SDK(JuheApis.framework)添加到你的程序中来,SDK依赖的包包括: 2,在聚合SDK Framework的JHSDKAPIPath.h文件中找到快递查询接口宏,以及字典参数 /* 12306火车票查询订票 *//**@brief 2306火车票查询订票--1.车次查询@param lname string 必填 车次名称,如:G4@param ldtype string 非必填 返回数据的格式,xml或json,默认json*/#define kJHAPIS_L

12306火车票查询爬虫(基于selenium)

今天写一下12306火车票查询的爬虫,新手一个,代码方面可能不是那么整洁,望海涵... 一. 这个火车票爬虫感觉还是有点难度的,一些小细节需要考虑. 二. 还是先讲一下思路:  获得火车票查询URL----->单击'单程'------->点击出发输入框,输入城市,选取站点------>目的地输入同上一步------>点击出发日期那个框,选取出发日期.------>点击"查询"按钮------>前面几步用selenuim实现------>创建几个

12306火车票查询工具

使用Python实现的火车票查询工具: Usage: ticket.py [-gdtzk] <from> <to> <date> Options: -h,--help 帮助信息 -a 所有 -g 高铁 -d 动车 -t 特快 -z 直达 -k 快速 Demo: ticket.py shenzhen beijing 20161001 -g 1 #!/usr/bin/env python 2 #coding:utf-8 3 import urllib2,re,json 4

使用Python和Splinter实现12306火车票查询与抢票

有一段时间没有使用Python了,前几天经朋友提起一篇关于用Python实现抢火车票的文章,百度了实现抢火车票的技术细节,网上却有不少资料,也不是新鲜的东西.在了解了一些技术手段,阅读了一些大神的博文后,也尝试实现了一下,代码写得粗糙,纯当娱乐,本文在Windows系统下完成.需要提到的是,抢票过程中的验证码部分只能手动完成. 首先,我需要的工具和组件有: Chrome浏览器 浏览器驱动ChromeDriver Python 3.5 Web应用测试工具Splinter Chrome浏览器可自行下

聚合数据Android SDK 12306火车票查询订票演示示例 编辑

1.聚合SDK是聚合数据平台,为移动开发者提供的免费数据接口.使用前请先到聚合平台(http://www.juhe.cn/)注册,申请相关数据. 2.下载聚合数据SDK,将开发包里的juhe_sdk_v_1_1.jar拷贝到libs根目录下,将libJuheSDK_v_1_0.so拷贝到libs\armeabi目录下,如图: 3. 根据接口说明文档找到以下方法: Java代码   /** * 获取车次 * * @param name *            车次 * @param jsonCa

Python3实现火车票查询工具

Python 实现火车票查询工具 一. 实验介绍 通过python3实现一个简单的命令行版本的火车票查询工具,用实际中的例子会更感兴趣,不管怎么样,既练习了又可以自己使用. 1.  知识点: Python 基础知识的综合运用 docopt, requests, colorama, prettytable 库的使用 setuptools 的使用 2. 效果截图: 二. 接口设计 接口我们就按照12306官网的查询格式如下:   程序名: pickets 查询方式: 程序名 出发地 目的地 出发日

使用scrapy进行12306车票查询

概述 通过12306的查询API进行查询某日火车票, 结果保存在csv文件中. 详细 代码下载:http://www.demodashi.com/demo/12623.html 一.环境搭建 1. 安装配置python3.6 示例网站使用的是python 3.6.1 下载地址:https://www.python.org/downloads/release/python-361/ 根据自己的系统选择相应的版本 2. 安装Twisted Windows: 进入http://www.lfd.uci.

python利用selenium+requests+beautifulsoup爬取12306火车票信息

在高速发展的时代.乘车出远门是必不可少的,有些查询信息是要收费的.这里打造免费获取火车票信息 想要爬取12306火车票信息,访问12306官方网站,输入出发地,目的地  ,时间  之后点击确定,这是我们打开谷歌浏览器开发者模式找到   https://kyfw.12306.cn/otn/resources/js/framework/station_name.js    这里包含了所有城市的信息和所有城市的缩写字母.想要获取火车票信息  https://kyfw.12306.cn/otn/left

微信小程序--火车票查询

原文:http://www.cnblogs.com/tgyf/p/5960979.html 写在最前面 微信小程序自九月份推出内测资格以来,经历了舆论热潮到现在看似冷清,但并不意味着大家不那么关注或者不关注了.我想不管是否有内测资格,只要是感兴趣的开发者已经进入潜心耕耘产品的阶段了,至少是静下心来思考与学习.如果对微信小程序的前途和定位有什么疑惑,可以看看这篇文章http://lib.csdn.net/article/wechat/46742. 下面从字母a开始编号的内容主要作为后续学习与思考后