因为项目原因,需要获取中国所有铁路线路及车次信息,但是并没有任何网站或文章直接将所有信息整合在一起提供出来,因此只能自己从页面上扒。

这里利用到了python的selenium模块,自动定位操作网页,然后通过其他方式获取页面信息,以达到数据搜索整合的目的。

我使用的是pycharm工具作为环境运行代码的,直接在setting中安装就可以,各位也可以用pip命令安装,很方便,这里不赘述

安装过后需要chrome浏览器的支持,尤其需要chromedriver驱动,否则无法进行网页的打开以及自动操作

关于chrome和chromedriver的安装不是本文重点,有不理解的小伙伴可以百度搜索安装一下

这里是一个简单的小例子,也是网上可以搜到的,需要了解的是里面的操作

from selenium import webdriver
from time import sleepif __name__ == '__main__':driver = webdriver.Chrome()driver.get("http://www.baidu.com")driver.maximize_window()driver.find_element_by_id("kw").send_keys("Python")sleep(3)driver.find_element_by_id("su").click()# driver.quit()

第一步指定chrom浏览器

第二步设置网址

第三步设置窗口大小,这步可以跳过,会采用默认值

第四步是选择输入栏并输入字符串‘Python’,注意,百度页面的输入框的id对应的就是‘kw’,

第五步点击‘百度一下’按钮进行搜索,同理,这里的‘百度一下’对应的id就是‘su’

第四第五步尤为重要,不同的页面因为网页源码不同,每个按钮或者模块的id都基本不同,需要自己查看源码搜索

下面是我近期应用到的代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import reif __name__ == '__main__':# 先设置浏览器chrome_options = Options()# chrome_options.add_argument('--headless')  # 无窗口模式chrome_options.add_argument('--disable-gpu')driver = webdriver.Chrome(chrome_options=chrome_options)# 进入网页driver.get("https://trains.ctrip.com/trainbooking/TrainSchedule/")# 点击按钮选择车次查询功能driver.find_element_by_id('ctl00_MainContentPlaceHolder_ucSearch_rbTrainNumber').click()typelist = ['K', 'Z', 'T', 'D', 'G']for type in typelist:for num in range(1, 9999):train = type + str(num)    # 组合成车次号# id="tn"是搜索输入框,输入车次号driver.find_element_by_id('tn').send_keys(train)# id="base_btns3"是搜索按钮,click()是模拟点击driver.find_element_by_class_name('base_btns3').click()# 获取网页渲染后的源代码html = driver.page_source# 对结果进行判断,因为输入的车次可能无效# 通过查询成功的页面源代码才会出现的字符串进行判断if html.count('hyDepartureStationName') != 0:  # 查询到了列车station = (re.findall('<a id="ctl00_MainContentPlaceHolder_rptStopOverStation_ctl.*?" href=".*?">(.+?)</a>', html))arrtime = (re.findall('\d{2}:\d{2}', html))print(station)print(arrtime)print(train, "查询成功")# 清空输入框内容driver.find_element_by_id('tn').clear()

代码主要实现的就是自动查询列车车次,并获取站点信息,时间信息等,由于不需要看着窗口,因此加入了Options模块进行无窗口设置,这里的代码我把注释掉了,如果有需要的可以取消注释,那么就没有窗口弹出来了。


Python(9):利用selenium操作网页并抓取内容相关推荐

  1. python获取渲染之后的网页_Phantomjs抓取渲染JS后的网页(Python代码)

    最近需要爬取某网站,无奈页面都是JS渲染后生成的,普通的爬虫框架搞不定,于是想到用Phantomjs搭一个代理. Python调用Phantomjs貌似没有现成的第三方库(如果有,请告知小编),漫步了 ...

  2. Python实训day07pm【Selenium操作网页、爬取数据-下载歌曲】

    Python实训-15天-博客汇总表 lu16 - 博客园 <--- 本篇博客详细内容!

  3. Python爬虫4.2 — ajax(动态网页数据抓取)用法教程

    Python爬虫4.2 - ajax[动态网页数据]用法教程 综述 AJAX 介绍 什么是AJAX 实例说明 请求分析 获取方式 实例说明 其他博文链接 综述 本系列文档用于对Python爬虫技术的学 ...

  4. python采集直播间数据_Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例...

    本文实例讲述了Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息.分享给大家供大家参考,具体如下: import time from multiprocessing import Poo ...

  5. 如何用python抓取文献_浅谈Python爬虫技术的网页数据抓取与分析

    浅谈 Python 爬虫技术的网页数据抓取与分析 吴永聪 [期刊名称] <计算机时代> [年 ( 卷 ), 期] 2019(000)008 [摘要] 近年来 , 随着互联网的发展 , 如何 ...

  6. [Python爬虫]使用Selenium操作浏览器订购火车票

    这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...

  7. python——爬虫实现网页信息抓取

    首先实现关于网页解析.读取等操作我们要用到以下几个模块 import urllib import urllib2 import re 我们可以尝试一下用readline方法读某个网站,比如说百度 de ...

  8. python 模拟浏览器selenium_Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例...

    本文实例讲述了Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息.分享给大家供大家参考,具体如下: import time from multiprocessing import Poo ...

  9. python抓取网站重要url_[Python]网络爬虫(一):抓取网页的含义和URL基本构成

    一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一 ...

最新文章

  1. python题库刷题训练软件_刷题 -- python计算器练习题
  2. 圆 最小外包矩形_【OpenCV3图像处理】提取轮廓的凸包、外包矩形、最小外包矩形、最小外包圆...
  3. matplotlib柱状图上方显示数据_使用 matplotlib 的两种姿势
  4. bootstrap多模态框
  5. RS485无线通讯模块工作原理详解
  6. select函数的使用
  7. 想学python网课哪个好-推荐书单(网课)-人生/编程/Python/机器学习-191本
  8. Peer Pressure(博弈论+机制设计) 论文阅读笔记
  9. 通俗易懂的哈希算法讲解
  10. unite 2019 上海,东京,首尔,哥本哈根,悉尼 的视频/资料
  11. 数字孪生的思考 05 - VAM/XR
  12. 微信收货地址开发分享
  13. 单元格颜色公式之明细数据项隔行底纹
  14. Linux下实现聊天室
  15. stm32h750从上电到main函数时间
  16. MWC 2017小结:各家新机缺乏创新,5G落地尚需时日
  17. 电脑如何创建html文件夹,如何在电脑上创建自己的隐私文件夹
  18. 东芝推出用于隔离式固态继电器的光伏输出光耦
  19. 从万得下载A股数据保存到mongodb
  20. Java SQL异常:java.sql.SQLException: Incorrect DATE value: ‘2021.02.31‘

热门文章

  1. 操作系统练习题(第一章)
  2. 遥控器页面html,CSS模仿遥控器按钮
  3. 社群经济=人性的回归
  4. Adobe Acrobat DC无法生成pdf:an unexpected error occurred pdfmaker was unable to produce the adobe pdf
  5. 前端面试之开发中遇到的问题【建议收藏】
  6. 联想一体计算机排行,联想一体机电脑哪款比较好?十大联想一体机电脑详细排名...
  7. Android Studio百度地图SKD应用
  8. Hibernate通常是三种:hql查询,QBC查询和QBE查询:
  9. 快速排序amp;amp;选择排序amp;amp;冒泡排序
  10. 163邮箱注册,怎么注册申请 vip.tom.com邮箱?