from selenium import webdriver
from lxml import etree
import time
driver = webdriver.Chrome()
url = 'https://kyfw.12306.cn/otn/leftTicket/init'
driver.get(url)
def sendKey():#模拟搜索driver.find_element_by_xpath('//*[@id="fromStationText"]').click()#点击出发站time.sleep(1)driver.find_element_by_xpath('//*[@id="ul_list1"]/li[1]').click()#第一个热门城市默认为北京time.sleep(1)driver.find_element_by_xpath('//*[@id="toStationText"]').click()#点击终点站time.sleep(1)driver.find_element_by_xpath('//*[@id="ul_list1"]/li[2]').click()#第二个热门城市默认为上海time.sleep(1.1)driver.find_element_by_xpath('//*[@id="train_date"]').click()#点击出发时间time.sleep(1)driver.find_element_by_xpath('/html/body/div[34]/div[1]/div[2]/div[23]/div').click()#选择23号time.sleep(1.1)driver.find_element_by_xpath('//*[@id="query_ticket"]').click()#点击查询time.sleep(4) #等待加载         source = driver.page_source #获取网页源码spider_page(source)#传值给spider
def spider_page(html):#爬虫函数html = etree.HTML(html)#解析网页for et in html.xpath('//*[@id="queryLeftTable"]/tr'):train = et.xpath('./td/div/div/div/a/text()')#列车名称if len(train) != 0:#网页中同时存在两个tr,判断存在列车名再进行其他信息获取train =trainstar = et.xpath('./td/div/div[2]/strong[1]/text()')[0]#出发站end = et.xpath('./td/div/div[2]/strong[2]/text()')[0]#终点站starTime = et.xpath('./td/div/div[3]/strong[1]/text()')#发车时间starTime = starTime[0]+"(当天出发)"endTime = et.xpath('./td/div/div[3]/strong[2]/text()')#到达时间dayTime = et.xpath('./td/div/div[4]/span/text()')arrive = endTime[0]+("("+dayTime[0]+")")if len(str(et.xpath('./td[2]/text()'))) == 6:#头等座,6是字符串“候补”的长度best = et.xpath('./td[2]/text()')else:best = et.xpath('./td[2]/div/text()')best = "特等座--"+best[0]#字符串拼接#一等座if len(str(et.xpath('./td[3]/text()'))) == 5: #5是字符串“有”的长度frist = et.xpath('./td[3]/text()')elif len(str(et.xpath('./td[3]/text()'))) == 6:frist = ['候补']else:frist = et.xpath('./td[3]/div/text()')frist = "一等座--"+frist[0]#二等座                         second = et.xpath('./td[4]/text()')second = "二等座--"+second[0]print (train,"\t",star,"---",end,"\t",starTime,"---",arrive,"\t",best,"\t",frist,"\t",second)if __name__ == '__main__':sendKey()

输出结果:

只爬取部分信息做测试,其他信息还需要完善!!!

Python爬取12306车次信息相关推荐

  1. python爬取12306_Python爬取12306车次信息代码详解

    详情查看下面的代码: 如果被识别就要添加一个cookie如果没有被识别的话就要一个user-agent就好了.如果出现乱码就设置编码格式为utf-8 #静态的数据一般在elements中(复制文字到s ...

  2. 2021最新 python爬取12306列车信息自动抢票并自动识别验证码(三)购票篇

    项目前言 tiebanggg又来更新了,项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时间进行删除:切忌用于一切非法途径,否则后果自行 ...

  3. 2021最新python爬取12306列车信息自动抢票并自动识别验证码

    项目描述 项目前言 tiebanggg又来更新了,项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时间进行删除:切忌用于一切非法途径,否 ...

  4. python爬取12306列车信息自动抢票并自动识别验证码(一)列车数据获取篇

    项目前言 自学python差不多有一年半载了,这两天利用在甲方公司搬砖空闲之余写了个小项目--[12306-tiebanggg-master].注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一 ...

  5. python爬取12306列车信息自动抢票并自动识别验证码(二)selenium登录验证篇

    项目前言 自学python差不多有一年半载了,这两天利用在甲方公司搬砖空闲之余写了个小项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时 ...

  6. Python爬取12306车票信息

    Python3爬取12306车票信息 第一次写爬虫,咱从入门级--12306车票爬取 开始 我们要爬取的信息是https://www.12306.cn/index/上的车票信息 当我们选择出发地和目的 ...

  7. 小白入门爬虫~爬取12306车次信息(静态网站和动态网站的区分)(get动态网页的爬取)

    elements,console,source,network elements分析网络结构,获取想要的数据 console打印一些网站的数据,做网站的时候有时候可能会在控制台上打印一些数据 sour ...

  8. python爬火车票是不是违法_python利用selenium+requests+beautifulsoup爬取12306火车票信息...

    在高速发展的时代.乘车出远门是必不可少的,有些查询信息是要收费的.这里打造免费获取火车票信息 想要爬取12306火车票信息,访问12306官方网站,输入出发地,目的地  ,时间  之后点击确定,这是我 ...

  9. python爬取自如房间信息(一)

    使用python和selenium+Chrome Headless爬取自如房间信息,并将结果存储在MongoDB中.其中最麻烦的应该是每间房的价格,因为自如是用一张图片和offset来显示价格,所以不 ...

  10. php爬取房源,用python爬取二手房交易信息并进行分析

    用python爬取二手房交易信息并分析第一步:编写爬虫 爬取某平台上海市十个区共900条二手房的交易信息#爬取上海十个区的二手房价信息 import requests from bs4 import ...

最新文章

  1. 中国学者用人工光感受器助失明小鼠复明
  2. C# webBrowser与javascript互调
  3. 【PM模块】技术对象管理
  4. sierra mysql_macOS High Sierra 使用 Homebrew 安装 MYSQL 5.7
  5. spark shell 删除失效_Spark任务提交源码解析
  6. delphi datasnap断线后再次连接_电脑连接WiFi后经常出现断线断开连接问题的解决方法...
  7. 关于Spring AOP,除了动态代理、CGLIB,你还知道什么?
  8. 2015,工作几年的心得
  9. java data文件夹_java-如何在不指定父文件夹/ ref的情况下遍历Datasnapshot
  10. python中text的textvriable_python+NLTK 自然语言学习处理五:词典资源
  11. VS(Visual Studio2017)快速入门基础操作(运行结果一闪而过,找不到解决方案资源管理器)
  12. Linux内核移植之DM9000网卡驱动
  13. Topaz ReMask 5 for Mac(抠图神器)
  14. 利用selenium获取接口数据
  15. 开发DSP硬件驱动程序的一种方法
  16. 【BDTC 2016】交通与旅游大数据论坛:透过大数据看交通
  17. 对象的高级使用-插入图片对象(转)
  18. 海尔android 电视直播软件,海尔智能电视如何安装直播软件看直播
  19. 数据分析专题报告范文6篇_【2018最新】数据分析报告范文-优秀word范文 (5页)
  20. html idv垂直居中,2011最新整理idv+css标准.doc

热门文章

  1. 计算机四级等级考试网络工程师知识点-【操作系统原理+计算机网络两科完整】
  2. matlab雷达噪声模型,雷达信号处理MATLAB仿真.doc
  3. Java后台生成NO2016012701(代码+年月日+流水号)这样的流水编号
  4. Excel校验银行卡号是否正确
  5. Linux根目录的建立
  6. 金融交易学——一个专业交易者…
  7. 云服务器Tomcat版本升级(Tomcat6升级至Tomcat7和Tomcat8)问题总结
  8. sql注入工具的使用
  9. c语言用字符编程图形,C语言图形编程——字母符号
  10. WIN10命令提示符/黑窗口/cmd打不开怎么办