各种各样的网站在我们日常工作和学习中占据着举足轻重的地位,学习、影音娱乐、查询资料、协同办公,越来越多的任务都被迁移到浏览器
因此,网页也蕴含着很多有价值、我们能够用得到的资源
例如,数据、歌曲、影视、文本、图片;所以,这几年来爬虫这项技术也成了很多开发人员必备的技能之一
以 Python 爬虫为例,比较常用的爬虫手段是结合 Requests、正则表达式等有一定门槛的工具来完成,并且还需要对 HTML、Web 具有一定的基础
这把很多开发同学拒之门外,也让很多初学者花费很多功夫和时间来学习爬虫这些技能
其实,除了上述提到那些具有一定门槛的爬虫知识之外,有一些另辟蹊径的同学会选择 Selenium
这款 Web 应用测试工具来完成爬虫任务,它能够像真正的用户一样完成一系列的操作
Selenium
已经很好用,但是,它的大多数交互还是和 Web 元素之间进行的,需要使用到 HTML id、Xpath、CSS 选择器,虽然自动化程度高了一些,但是还不算足够的容易使用。
而本文的主角Helium
则是在 Selenium 的基础上封装的更加高级的 Web 自动化工具,它能够通过网页端可见的标签
、名称
来和 Web 进行交互,例如,
通过Helium
,即便不在了解 Html、CSS 这些知识,你依然可以轻松的完成 Web 自动化程序的开发,轻松掌握爬虫技能,同时能够辅助日常重复性劳动,彻底解放你的双手
为了方便大家理解和使用,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 层面的内容,分别是元素名称和元素类别名称,那么,这是怎么获取的呢?
其实,非常简单,我们只需要鼠标右键点击对应按钮,然后选择 检查 即可
好了,以上就是利用 Helium 实现网页自动化的常规操作,大家也来试试吧。
本文由哈喽比特于4年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/BCKNK5s21fEakDRnvUWy3w
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。