Python(9):利用selenium操作网页并抓取内容
因为项目原因,需要获取中国所有铁路线路及车次信息,但是并没有任何网站或文章直接将所有信息整合在一起提供出来,因此只能自己从页面上扒。
这里利用到了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操作网页并抓取内容相关推荐
- python获取渲染之后的网页_Phantomjs抓取渲染JS后的网页(Python代码)
最近需要爬取某网站,无奈页面都是JS渲染后生成的,普通的爬虫框架搞不定,于是想到用Phantomjs搭一个代理. Python调用Phantomjs貌似没有现成的第三方库(如果有,请告知小编),漫步了 ...
- Python实训day07pm【Selenium操作网页、爬取数据-下载歌曲】
Python实训-15天-博客汇总表 lu16 - 博客园 <--- 本篇博客详细内容!
- Python爬虫4.2 — ajax(动态网页数据抓取)用法教程
Python爬虫4.2 - ajax[动态网页数据]用法教程 综述 AJAX 介绍 什么是AJAX 实例说明 请求分析 获取方式 实例说明 其他博文链接 综述 本系列文档用于对Python爬虫技术的学 ...
- python采集直播间数据_Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例...
本文实例讲述了Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息.分享给大家供大家参考,具体如下: import time from multiprocessing import Poo ...
- 如何用python抓取文献_浅谈Python爬虫技术的网页数据抓取与分析
浅谈 Python 爬虫技术的网页数据抓取与分析 吴永聪 [期刊名称] <计算机时代> [年 ( 卷 ), 期] 2019(000)008 [摘要] 近年来 , 随着互联网的发展 , 如何 ...
- [Python爬虫]使用Selenium操作浏览器订购火车票
这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...
- python——爬虫实现网页信息抓取
首先实现关于网页解析.读取等操作我们要用到以下几个模块 import urllib import urllib2 import re 我们可以尝试一下用readline方法读某个网站,比如说百度 de ...
- python 模拟浏览器selenium_Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例...
本文实例讲述了Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息.分享给大家供大家参考,具体如下: import time from multiprocessing import Poo ...
- python抓取网站重要url_[Python]网络爬虫(一):抓取网页的含义和URL基本构成
一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一 ...
最新文章
- python题库刷题训练软件_刷题 -- python计算器练习题
- 圆 最小外包矩形_【OpenCV3图像处理】提取轮廓的凸包、外包矩形、最小外包矩形、最小外包圆...
- matplotlib柱状图上方显示数据_使用 matplotlib 的两种姿势
- bootstrap多模态框
- RS485无线通讯模块工作原理详解
- select函数的使用
- 想学python网课哪个好-推荐书单(网课)-人生/编程/Python/机器学习-191本
- Peer Pressure(博弈论+机制设计) 论文阅读笔记
- 通俗易懂的哈希算法讲解
- unite 2019 上海,东京,首尔,哥本哈根,悉尼 的视频/资料
- 数字孪生的思考 05 - VAM/XR
- 微信收货地址开发分享
- 单元格颜色公式之明细数据项隔行底纹
- Linux下实现聊天室
- stm32h750从上电到main函数时间
- MWC 2017小结:各家新机缺乏创新,5G落地尚需时日
- 电脑如何创建html文件夹,如何在电脑上创建自己的隐私文件夹
- 东芝推出用于隔离式固态继电器的光伏输出光耦
- 从万得下载A股数据保存到mongodb
- Java SQL异常:java.sql.SQLException: Incorrect DATE value: ‘2021.02.31‘
热门文章
- 操作系统练习题(第一章)
- 遥控器页面html,CSS模仿遥控器按钮
- 社群经济=人性的回归
- Adobe Acrobat DC无法生成pdf:an unexpected error occurred pdfmaker was unable to produce the adobe pdf
- 前端面试之开发中遇到的问题【建议收藏】
- 联想一体计算机排行,联想一体机电脑哪款比较好?十大联想一体机电脑详细排名...
- Android Studio百度地图SKD应用
- Hibernate通常是三种:hql查询,QBC查询和QBE查询:
- 快速排序amp;amp;选择排序amp;amp;冒泡排序
- 163邮箱注册,怎么注册申请 vip.tom.com邮箱?