chrome网页视频抓取( Python中一个非常成熟的库——selenium专栏(组图))

优采云 发布时间: 2022-01-31 19:20

  chrome网页视频抓取(

Python中一个非常成熟的库——selenium专栏(组图))

  

  本系列文章收录在公众号:数据宇宙>py爬虫>Selenium

  转发本文并私信我“python”,可以获得Python资料及更多系列文章(持续更新)

  作为“数据玩家”,手头没有数据怎么办?当然,用代码自动化采集数据,但现在“爬虫”可没那么容易了,其中最难的是突破网站的各种反爬机制。本系列将全面讲解Python中一个非常成熟的库——selenium,并教你如何使用它在网络上爬取你需要的数据

  虽然自动爬虫很方便,但希望大家可以考虑到网站服务器的承受能力,不要频繁访问网站。永远不要采集敏感数据!!否则很容易“从入门到监狱”

  本系列大部分案例都是selenium和pyppeteer库同时讲解的,并且有Python和C#2语言的实现文章,详情请到公众号目录。

  当你得到数据时,你还需要对数据进行处理和分析。我的 pandas 专栏是高级教程的最佳介绍。

  前言

  学习任何库,首先要了解库的机制和流程。今天,我们将从一个小例子开始我们的学习之旅。

  搜索和采集结果的标题

  要求如下:

  硒的问题

  这个系列一直围绕着一个点:“用代码操作浏览器”,我们来看看整个过程:

  

  然而,市面上的浏览器种类繁多,甚至一个厂商的浏览器版本也不同。我们如何保证我们的代码只需要编写一次就可以控制不同的浏览器?

  更深入的流程图如下:

  

  “案子怎么还没开始,就说硒不是?我还在学吗?”

  他有以下优点:

  缺点:

  如果觉得不能接受selenium的缺点,可以查看pyppeteer的相关文章(公众号:大数据宇宙>py爬虫>pyppeteer)

  

  得到驱动

  现在让我们开始使用 selenium 来解决我们的需求。

  首先,使用 pip 安装 selenium

  

  由于我在本地安装了谷歌Chrome浏览器,打开浏览器查看浏览器的版本:

  

  

  然后去相关的网站(私信我“python”)下载对应的驱动:

  

  

  一切都准备好了

  看过我相关教学文章的人都知道,我喜欢从语义的角度去理解和学习图书馆。

  Selenium 本质上控制着浏览器,所以我们在使用它的时候,代码的语义应该类似于手动操作浏览器的过程。

  首先导入一些包:

  

  让我们看看如何使用代码来描述我们的手动操作。

  打开浏览器:

  

  没错,我们只是下载了驱动程序,但是 Python 怎么知道在哪里可以找到该驱动程序呢?

  我们可以在实例化浏览器对象的时候传入一个文件路径,告诉他程序的具体位置:

  

  输入百度搜索的网址:

  

  将鼠标移动到输入框,点击一次,然后输入内容“爬虫”:

  这里的问题是,如何在代码中表达“鼠标到输入框,点击一次”?

  其实selenium确实可以模拟鼠标移动等操作(网站的一些登录验证码需要用鼠标拉动拼图来模拟),但是目前的情况下,我们不应该模拟鼠标,而是根据html标签定位。.

  此时,我们可以使用浏览器的“开发者功能”进行定位。

  限于篇幅,本文不详细讲解“开发者功能”的所有操作,详细讲解会放在公众号目录:数据宇宙>爬虫工具>系列文章

  

  下面用一张动态图来展示操作过程:

  

  看一下代码:

  

  

  接下来,输入内容“爬虫”:

  

  我们继续模拟点击输入框右侧的“百度点击”按钮。

  同样使用“开发人员功能”,找到元素并复制 css 选择器表达式字符串:

  

  所有结果的主标题:

  这对初学者来说可能有点困难,因为这一次我们需要同时选择多个元素(多个搜索结果的主标题),并查看定位到的标签:

  

  仔细看看我们需要的主要标题在哪里:

  

  所以,现在我们将使用 CSS 选择器来表达以下语义: 在 div 内部 (id=content_left),在 h3 标记内部的 a 标记文本。div 和 h3 之间可能有多层嵌套。

  生成的选择器表达式如下:

  

  调用代码如下:

  

  Python基础教程教材 Python编程从零基础到实际项目实例

  ¥59

  买

  代码执行太快

  上面的代码之所以没有得到任何结果,是因为执行第10行的代码时,页面上还没有加载任何结果。

  如果一个人正在操作浏览器,那么你应该对他说:嘿,直到你看到那些结果,你去提取主标题。

  怎么说“直到你看到那些结果”?,selenium有一种特殊的等待元素出现的机制,代码如下:

  

  用控件关闭浏览器,完整代码如下:

  

  总结

  使用代码控制 selenium 与手动操作基本相同。一般流程是:

  下一节,我们将介绍更多的selenium技能,敬请期待!!

  私信我“python”获取本系列所有相关资料和源码文章

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线