网络爬虫之Selenium详解(含实战案例)

优采云 发布时间: 2022-04-23 08:09

  网络爬虫之Selenium详解(含实战案例)

  在实际的网络数据抓取过程中,经常会发现一些网页内容在网页源代码中查找不到的情况,因为这些内容都是通过JavaScript动态生成的,此时,使用普通的requests库无法直接获取相关内容。这时候就需要借助于Selenium模拟人操作浏览器,从而获取动态生成的内容。Selenium是一个用于Web应用程序测试的工具,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。Selenium支持大多数常用浏览器,例如IE、Mozilla Firefox、Safari、Google Chrome等等。下面我们以谷歌浏览器为例,给大家简单介绍Python中如何使用Selenium访问和抓取网页内容。

  1、工具下载与测试

  首先,在Python中并没有内置selenium库,因此需要自己主动下载安装,过程非常简单,只需通过 pip install selenium即可。

  其次,需要安装相应的浏览器驱动,对于谷歌浏览器而言,需要安装ChromeDriver。需要注意的是:Chromedriver的版本一定要与本地电脑上的Chrome版本一致,否则不起作用。如何查看本地浏览器的版本呢?可通过在浏览器中输入chrome://version/ 查看,效果如下。此时,浏览器的版本为99.0.4844.51。

  

  接着去下载对应版本的Chromedriver。通常从以下两个网址下载。

  打开网址,找到对应的版本,如果没有完全一样的版本,相近的版本也可以。进入文件夹,下载与本地电脑系统相同的安装文件,在此选择windows,然后将其下载到本地。

  

  准备好相关工具后,接下来就可以进行测了。首先导入相关模块,然后创建浏览器对象,指定驱动所在路径,接着打开任意网址,让浏览器停留一段时间。代码如下:

  

  运行上方代码,将会得到下图所示效果,浏览器显示百度首页,并有提示消息:Chrome正受到自动测试软件的控制。说明一切准备工作就绪。

  

  2、核心对象及其方法介绍

  通过browser = webdriver.Chrome()方法获取浏览器对象brower后,即可调用浏览器对象的方法实现网页跳转、网页源码获取、网页节点查找、浏览器关闭等等。

  浏览器对象brower的主要方法及其含义如下:

  节点对象WebElement的主要方法及其含义如下:

  3、简单应用案例-抓取博主的博客列表

  下面通过一个简单的例子,演示使用Selenium抓取网页数据的流程,这个例子是获取CSDN中某位博主的文章标题及其链接,该博主的文章列表页面为:,文章列表采取动态加载策略,每次加载20条,滚动条滑到最后时会继续加载20条,直到所有文章都显示为止。因此,需要模拟滚动条滑动操作,判断加载的数据是否为20的倍数,如果不是20的倍数说明加载完毕,如果是20的倍数则继续滑动加载,判断前后两次获取的数据数量是否一致,如果一致,表明所有的数据都已加载完毕。关键代码如下:

  

  程序执行后,控制台打印结果如下:

   

文章数为:40*敏*感*词*教你学Python之绘图库Turtle(一文掌握Python中Turtle库的使用) https://blog.csdn.net/Dream_Gao1989/article/details/108913735网络爬虫之BeautifulSoup详解(含多个案例) https://blog.csdn.net/Dream_Gao1989/article/details/124163664网络爬虫之Requests库详解(含多个案例) https://blog.csdn.net/Dream_Gao1989/article/details/124139669详解Python正则表达式(含丰富案例) https://blog.csdn.net/Dream_Gao1989/article/details/123440771Matplotlib绘制箱线图 https://blog.csdn.net/Dream_Gao1989/article/details/120265003Matplotlib绘制动态图效果 https://blog.csdn.net/Dream_Gao1989/article/details/120079460Python数据分析与可视化案例解析 https://blog.csdn.net/Dream_Gao1989/article/details/117506797使用selenium抓取网易云音乐数据 https://blog.csdn.net/Dream_Gao1989/article/details/115697246Selenium + Chrome 网络爬虫学习笔记(从环境搭建开始,适合新手) https://blog.csdn.net/Dream_Gao1989/article/details/115694067Python 基础测试题(含答案) https://blog.csdn.net/Dream_Gao1989/article/details/114590217*敏*感*词*教你学Python之语法基础 https://blog.csdn.net/Dream_Gao1989/article/details/109959461新书推荐之《Python数据分析实战》(*敏*感*词*教你学Python系列视频配套教材) https://blog.csdn.net/Dream_Gao1989/article/details/111244702*敏*感*词*教你学Python之手写数字识别(scikit-learn的应用) https://blog.csdn.net/Dream_Gao1989/article/details/110708484*敏*感*词*教你学Python之波士顿房价预测(scikit-learn的应用) https://blog.csdn.net/Dream_Gao1989/article/details/110622089*敏*感*词*教你学Python之鸢尾花分类(scikit-learn的应用) https://blog.csdn.net/Dream_Gao1989/article/details/110516785*敏*感*词*教你学Python之机器学习基础 https://blog.csdn.net/Dream_Gao1989/article/details/110469303*敏*感*词*教你学Python之操作数据库(掌握Python操作SQLite数据库) https://blog.csdn.net/Dream_Gao1989/article/details/110419372*敏*感*词*教你学Python之面向对象 https://blog.csdn.net/Dream_Gao1989/article/details/110365358*敏*感*词*教你学Python之文件操作(一文掌握文件操作) https://blog.csdn.net/Dream_Gao1989/article/details/110313119*敏*感*词*教你学Python之常见标准库(数学库、随机数库、日期库、集合扩展库) https://blog.csdn.net/Dream_Gao1989/article/details/110295307*敏*感*词*教你学Python之异常处理(一文掌握异常处理) https://blog.csdn.net/Dream_Gao1989/article/details/110230308*敏*感*词*教你学Python之函数(一文掌握Python中的函数) https://blog.csdn.net/Dream_Gao1989/article/details/110218650*敏*感*词*教你学Python之字典 https://blog.csdn.net/Dream_Gao1989/article/details/110160548*敏*感*词*教你学Python之集合set https://blog.csdn.net/Dream_Gao1989/article/details/110159590*敏*感*词*教你学Python之字符串 https://blog.csdn.net/Dream_Gao1989/article/details/110124029*敏*感*词*教你学Python之元组 https://blog.csdn.net/Dream_Gao1989/article/details/110108996*敏*感*词*教你学Python之列表list https://blog.csdn.net/Dream_Gao1989/article/details/110108664*敏*感*词*教你学Python之流程控制 https://blog.csdn.net/Dream_Gao1989/article/details/110092029*敏*感*词*教你学Python之循环结构 https://blog.csdn.net/Dream_Gao1989/article/details/110070830*敏*感*词*教你学Python之分支结构 https://blog.csdn.net/Dream_Gao1989/article/details/110070667*敏*感*词*教你学Python之常见运算符 https://blog.csdn.net/Dream_Gao1989/article/details/110037855*敏*感*词*教你学Python之基本数据类型 https://blog.csdn.net/Dream_Gao1989/article/details/109981784*敏*感*词*教你学Python之环境搭建 https://blog.csdn.net/Dream_Gao1989/article/details/109911160*敏*感*词*教你学Python系列视频——通俗易懂,简单易学上手快 https://blog.csdn.net/Dream_Gao1989/article/details/109909980*敏*感*词*教你学Python之Matplotlib绘图(一文掌握数据可视化库-Matplotlib) https://blog.csdn.net/Dream_Gao1989/article/details/109408132*敏*感*词*教你学Python之Pandas(一文掌握数据分析与处理库-Pandas) https://blog.csdn.net/Dream_Gao1989/article/details/109147579*敏*感*词*教你学Python之Numpy学习(一文掌握科学计算库-Numpy) https://blog.csdn.net/Dream_Gao1989/article/details/109081424Python爬虫实战之研招专业目录抓取(共享源码) https://blog.csdn.net/Dream_Gao1989/article/details/109007412几行Python代码帮你生成精美词云图 https://blog.csdn.net/Dream_Gao1989/article/details/109005850Python爬虫与数据可视化案例(共享源码)  https://blog.csdn.net/Dream_Gao1989/article/details/108717147

   

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线