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

因此,网页也蕴含着很多有价值、我们能够用得到的资源

例如,数据、歌曲、影视、文本、图片;所以,这几年来爬虫这项技术也成了很多开发人员必备的技能之一

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

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

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

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

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

右键点击

悬浮

滚动鼠标

拖动文件

刷新

......

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

Helium为了方便大家理解和使用,Helium 作者把一些常用方法总结了一个清单

另外,在 Python 文件列出了公共函数,使用者可以通过阅读这个 Python 文件的代码来了解有哪些函数接口可以调用

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

点击按钮

跳转网页

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

首先,来了解一下我们个人在下载图片的过程中的具体流程。打开百度搜索;

搜索相关图片;

跳转到图片页面;

打开图片;

点击下载按钮;

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

打开百度搜索

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

start_chrome("www.baidu.com")

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

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

click("百度一下")

// 或者

press(ENTER)

click("图片")

打开图片

在前面 Helium 与 Github 交互的示例中,我们发现,Sign in、Username等都有标签名称。

但是,我们在这里跳转到图片页面时,发现每幅图片并没有 标签,那么我们该怎么确定点击哪一幅图呢?

好在 Helium 兼容了 Selenium 的接口,我们可以通过 Selenium 来获取页面的元素,然后结合 Helium 的点击就可以实现打开图片这一步骤// pn1是其中一幅图的名称,通过名称来获取对应的元素,然后调用Helium的click函数点击图片

img = driver.find_element_by_name("pn1")

click(img)

点击下载按钮

最后一步就是点击下载按钮,这一步和上一步类似,我们先通过 Selenium 的接口来获取 Web 元素,然后点击即可download = driver.find_element_by_class_name("btn-download")

click(download)

到这里,就完成了整个自动化爬取图片的过程,完成代码如下,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站视频等,可以举一反三。

如何查询指定元素名称?

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

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

python 网页自动处理_推荐一款 10 行 Python 代码实现网页自动化工具相关推荐

  1. python新手程序_推荐:一个适合于Python新手的入门练手项目

    随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python 有个Python入门练手项目, ...

  2. python缩写词_如果连这10个Python缩写都不知道,那你一定是Python新手!

    在本文中,我将告诉大家一些容易忽视的Python编程原理.规则和一些有趣的事实. 简介 对于许多开始学习编程的人来说,Python已经成为他们的首选.Python有非常直观的语法和支持动态类型的灵活性 ...

  3. mysql 工具 国产_推荐一款国产化比较好用的数据可视化工具(BI工具)

    当人们一提到数据可视化这个词儿呢,很多人大脑会直接闪过两个词. 第一个呢,就是「酷」,非常酷,酷酷的,炫酷......反正已没办法形容.像下面这样的: 好了,炫酷完事了,那另一个关键词就是,就是「难度 ...

  4. python ray定时_使用 Ray 用 15 行 Python 代码实现一个参数服务器

    使用 Ray 用 15 行 Python 代码实现一个参数服务器 参数服务器是很多机器学习应用的核心部分.其核心作用是存放机器学习模型的参数(如,神经网络的权重)和提供服务将参数传给客户端(客户端通常 ...

  5. python的电脑推荐_推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

  6. 启动ubuntu无反应_推荐一款优秀的Python IDE以及在Ubuntu下的安装

    Wing Python IDE专为Python而设计,为您带来更高效的开发体验.现在可以通过Ubuntu 16.04,Ubuntu 18.04,Ubuntu 18.10,Ubuntu 19.04及更高 ...

  7. python 优点 英文_值得关注的 10 个 Python 英文博客

    1. 第一个博客是 Planet python , 它无疑是最出名的python博客之一.去看看吧.我希望你会发现它很有用.它今天还更新过. 2. 第二个博客是 lucumr . 一个 Flask 开 ...

  8. python换脸完整程序_如何用小200行Python代码做一个换脸程序?

    今日不同往常,每周干货日,场主送出的不是成套的各类编程教学视频,而是一些轻应用实操.因为完成基本的理论学习之后,任何的呈现都在于如何应用及创新. 所以,在分享一系列教材类视频外,场主还会穿插着分享给大 ...

  9. 50行python代码打造一款女友监控器_手把手教你50行Python代码,给心目中的女友微博秒评论...

    突然觉得,现在发微博已经成为当代青年的潮流,或分享自拍美照,或分享美食美景,小编的女朋友也不例外,平时爱分享一些我俩生活的趣事. 但是她最近开始给我抱怨我从来不给她的微博评论,我作为骨灰级" ...

最新文章

  1. Openoffice 安装与配置
  2. 泪目!兰大硕导的《致谢》火了:我从来不曾优秀过,也从来不曾放弃过!
  3. 2020-12-06
  4. 发布方配模板引擎V2.1及开发教程和案例
  5. license文件生成原理
  6. 年轻人也太禁不起诱惑了吧?
  7. javascript---parseInt(08)或parseInt(09)转换返回0的解决办法
  8. [react] React中getInitialState方法的作用是什么
  9. python如何收集数据_如何从另一个文件导入列表并从中“收集”数据?(Python)...
  10. 我正在运行哪个版本的PostgreSQL?
  11. c++ STL之unordered_map
  12. Android ListView
  13. ARCore 1.7可轻松打造AR自拍照及动画Augmented Faces API
  14. java实现堆栈排序_Java代码为例讲解堆的性质和基本操作以及排序方法
  15. tcl机顶盒 tk 8296刷机固件及教程
  16. Linux系统中的用户管理
  17. 后端开发之如何写接口设计文档
  18. 语音社交聊天室源码开发,如何实现左滑删除功能
  19. RPA助你一键轻松完成财务报表
  20. 微信摇一摇周边 红包

热门文章

  1. 智能合约类代币EOS、BCH、Tezos很有可能会超越BTC
  2. 关于Android adb实现框架和应用
  3. 使用json-lib实现json to javabean
  4. Android Studio 添加Assets目录
  5. 全部与精简切换显示jQuery实例教程
  6. 无锡朗贤获B+轮融资,辰韬资本、兴韬投资领投
  7. DevExpress v18.1新版亮点——WinForms篇(七)
  8. 自定义AlertView
  9. Python函数参数的五种类型
  10. myeclipse调试java