热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

selenium接管已经打开的页面_除了Selenium,介绍一款新的网页自动化工具来爬虫...

各种各样的网站在我们日常工作和学习中占据着举足轻重的地位,学习、影音娱乐、查询资料、协同办公,越来越多的任务都被迁移到浏览器。因此,网页也

各种各样的网站在我们日常工作和学习中占据着举足轻重的地位,学习、影音娱乐、查询资料、协同办公,越来越多的任务都被迁移到浏览器。

因此,网页也蕴含着很多有价值、我们能够用得到的资源。例如,数据、歌曲、影视、文本、图片。所以,这几年来爬虫这项技术也成了很多开发人员必备的技能之一。

以Python爬虫为例,比较常用的爬虫手段是结合request、正则表达式等有一定门槛的工具来完成。而且,还需要对HTML、web具有一定的基础。

这把很多开发同学拒之门外,也让很多初学者花费很多功夫和时间来学习爬虫这些技能。

其实,除了上述提到那些具有一定门槛的爬虫知识之外,有一些另辟蹊径的同学会选择Selenium这款Web应用测试工具来完成爬虫任务,它能够像真正的用户一样完成一系列的操作。

Selenium已经很好用,但是,它的大多数交互还是和Web元素之间进行的,需要使用到HTML id、xpath、CSS选择器。虽然自动化程度高了一些,但是还不算足够的容易使用。

而本文的主角Helium则是在Selenium的基础上封装的更加高级的Web自动化工具,它能够通过网页端可见的标签名称来和Web进行交互,例如,

  • 点击键盘按键
  • 右键点击
  • 悬浮
  • 滚动鼠标
  • 拖动文件
  • 刷新
  • ......

f1ebcb9fc9fe60731dc23d12557b1371.gif

通过Helium,即便不在了解Html、CSS这些知识,你依然可以轻松的完成Web自动化程序的开发,轻松掌握爬虫技能,同时能够辅助日常重复性劳动,彻底解放你的双手。

Helium

为了方便大家理解和使用,Helium作者把一些常用方法总结了一个清单。另外,在Python文件列出了公共函数,使用者可以通过阅读这个Python文件的代码来了解有哪些函数接口可以调用。

在前面GIF动图中给出了Helium与Github的交互过程,其中涉及了我们常用的操作,例如,

  • 输入账号密码
  • 点击按钮
  • 跳转网页

在这里,我就不再重复这个过程,下面以爬取网页图片链接的例子来讲解一下Helium的用法,同时把Helium的常用操作串联起来。各位可以根据自己的需求,举一反三,来发挥Helium的价值。

首先,来了解一下我们个人在下载图片的过程中的具体流程。

  1. 打开百度搜索;
  2. 搜索相关图片;
  3. 跳转到图片页面;
  4. 打开图片;
  5. 点击下载按钮;

下面,就通过Helium来逐步完成上述5步。

打开百度搜索

Helium可以直接打开对应的网址,目前支持Chrome和火狐浏览器,只要用到start_chrome或者start_firefox函数,下面以Chrome浏览器为例,

from helium import *
start_chrome("www.baidu.com")

35d76d78ab71e5c1b4d7a2ab87fc4c1a.gif

搜索图片&跳转到图片页面

搜索图片过程中,首先需要在搜索框输出想要的目标图片,然后点击百度一下或者按下ENTER键。

write("詹姆斯")

click("百度一下")
// 或者
press(ENTER)

click("图片")

325bafb0d6876d8aba5a198b2640301f.gif

打开图片

在前面Helium与Github交互的示例中,我们发现,Sign inUsername等都有标签名称。但是,我们在这里跳转到图片页面时,发现每幅图片并没有标签,那么我们该怎么确定点击哪一幅图呢?

好在Helium兼容了Selenium的接口,我们可以通过Selenium来获取页面的元素,然后结合Helium的点击就可以实现打开图片这一步骤。

// pn1是其中一幅图的名称,通过名称来获取对应的元素,然后调用Helium的click函数点击图片
img = driver.find_element_by_name("pn1") 
click(img)

f2b75d9cb8d3b89675b3ef7b70b33558.gif

点击下载按钮

最后一步就是点击下载按钮,这一步和上一步类似,我们先通过Selenium的接口来获取Web元素,然后点击即可。

download = driver.find_element_by_class_name("btn-download")
click(download)

7ec9c51ba8a5ffd703867dc76c5dcb65.gif

到这里,就完成了整个自动化爬取图片的过程,完成代码如下,

from helium import *
start_chrome("www.baidu.com")
write("詹姆斯")
press(ENTER)
click("图片")
img = driver.find_element_by_name("pn1") 
click(img)
download = driver.find_element_by_class_name("btn-download")
click(download)

可以看出,整条爬取图片的代码仅仅需要10行代码,和人为手动操作步骤一样,非常简单。

除了下载图片这项简单的任务,我们也可以利用它开发一款自动化的工具,例如文件的上传、编辑、下载影视音乐、B站视频等,可以举一反三。

如何查询指定元素名称?

在前面事例中,涉及到pn1btn-download这2个HTML层面的内容,分别是元素名称和元素类别名称,那么,这是怎么获取的呢?

其实,非常简单,我们只需要鼠标右键点击对应按钮,然后选择检查即可。

7461b82ac798d6a52f2558227a81074c.gif

f8e71f6ed5d857c476663e33ad510c4c.gif

dd77536809e86a1a2ed870987586c7a2.png0d01cfdb652b163890fe260db11c6355.png

aa227f39bdd08ae26f5eb3e639309ee7.gif




推荐阅读
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在 CentOS 7 系统中安装 Scrapy 时遇到了一些挑战。尽管 Scrapy 在 Ubuntu 上安装简便,但在 CentOS 7 上需要额外的配置和步骤。本文总结了常见问题及其解决方案,帮助用户顺利安装并使用 Scrapy 进行网络爬虫开发。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • Python爬虫数据导出至CSV及图片存储技术详解
    Python爬虫数据导出至CSV及图片存储技术详解 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 全面解析JavaScript代码注释技巧与标准规范
    在Web前端开发中,JavaScript代码的可读性和维护性至关重要。本文将详细介绍如何有效地使用注释来提高代码的可读性,并探讨JavaScript代码注释的最佳实践和标准规范。通过合理的注释,开发者可以更好地理解和维护复杂的代码逻辑,提升团队协作效率。 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • 全面指南:安装Adobe Photoshop 2020及所有PS版本软件详细步骤
    全面指南:安装Adobe Photoshop 2020及所有PS版本软件详细步骤 ... [详细]
  • Swoole加密机制的安全性分析与破解可能性探讨
    本文深入分析了Swoole框架的加密机制,探讨了其在实际应用中的安全性,并评估了潜在的破解可能性。研究结果表明,尽管Swoole的加密算法在大多数情况下能够提供有效的安全保护,但在特定场景下仍存在被攻击的风险。文章还提出了一些改进措施,以增强系统的整体安全性。 ... [详细]
  • 本指南介绍了 `requests` 库的基本使用方法,详细解释了其七个主要函数。其中,`requests.request()` 是构建请求的基础方法,支持其他高级功能的实现。此外,我们还重点介绍了如何使用 `requests.get()` 方法来获取 HTML 网页内容,这是进行网页数据抓取和解析的重要步骤。通过这些基础方法,读者可以轻松上手并掌握网页数据抓取的核心技巧。 ... [详细]
  • 本文探讨了在Python中使用序列号字符串进行高效模式替换的方法。具体而言,通过将HTML标签中的`&`替换为`{n}`,并生成形如`[tag, {n}]`的哈希原始字符串。示例字符串为:“这是一个字符串。这是另一部分。”该方法能够有效提升替换操作的性能和可读性。 ... [详细]
  • 如何使用Python去除字符串中的非中文字符[Python编程技巧]
    在 Python 中,可以通过正则表达式来实现去除字符串中的非中文字符。具体方法是使用 `re` 模块中的 `re.sub()` 函数,配合正则表达式 `[^u4e00-u9fa5]` 来匹配并替换掉所有非中文字符,从而保留字符串中的中文部分。这种方法简洁高效,适用于多种文本处理场景。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有