爬虫界又出神器|一款比selenium更高效的利器

这篇具有很好参考价值的文章主要介绍了爬虫界又出神器|一款比selenium更高效的利器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提起selenium想必大家都不陌生,作为一款知名的Web自动化测试框架,selenium支持多款主流浏览器,提供了功能丰富的API接口,经常被我们用作爬虫工具来使用。但是selenium的缺点也很明显,比如速度太慢、对版本配置要求严苛,最麻烦是经常要更新对应的驱动

今天就给大家介绍另一款web自动化测试工具Pyppeteer,虽然支持的浏览器比较单一,但在安装配置的便利性和运行效率方面都要远胜selenium。

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

01.Pyppeteer简介

介绍Pyppeteer之前先说一下Puppeteer,Puppeteer是谷歌出品的一款基于Node.js开发的一款工具,主要是用来操纵Chrome浏览器的 API,通过Javascript代码来操纵Chrome浏览器,完成数据爬取、Web程序自动测试等任务。

Pyppeteer其实是Puppeteer的Python版本,下面简单介绍下Pyppeteer的两大特点,chromium浏览器和asyncio框架:

1).chromium

Chromium是一款独立的浏览器,是Google为发展自家的浏览器Google Chrome而开启的计划,相当于Chrome的实验版,Chromium的稳定性不如Chrome但是功能更加丰富,而且更新速度很快,通常每隔数小时就有新的开发版本发布。

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

Pyppeteer的web自动化是基于chromium来实现的,由于chromium中某些特性的关系,Pyppeteer的安装配置非常简单,关于这一点稍后我们会详细介绍。

2).asyncio

asyncio是Python的一个异步协程库,自3.4版本引入的标准库,直接内置了对异步IO的支持,号称是Python最有野心的库,官网上有非常详细的介绍:

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

由于Pyppeteer是基于asyncio实现的,所以它本身就支持异步操作,执行效率得到大幅提升。

02.安装与使用

1).极简安装

使用pip install pyppeteer命令就能完成pyppeteer库的安装,至于chromium浏览器,只需要一条pyppeteer-install命令就会自动下载对应的最新版本chromium浏览器到pyppeteer的默认位置。

如果不运行pyppeteer-install命令,在第一次使用pyppeteer的时候也会自动下载并安装chromium浏览器,效果是一样的。总的来说,pyppeteer比起selenium省去了driver配置的环节。

当然,出于某种原因,也可能会出现chromium自动安装无法顺利完成的情况,这时可以考虑手动安装:首先,从下列网址中找到自己系统的对应版本,下载chromium压缩包;

'linux': 'https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/575458/chrome-linux.zip'
'mac': 'https://storage.googleapis.com/chromium-browser-snapshots/Mac/575458/chrome-mac.zip'
'win32': 'https://storage.googleapis.com/chromium-browser-snapshots/Win/575458/chrome-win32.zip'
'win64': 'https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/575458/chrome-win32.zip'

(左右滑动查看)

然后,将压缩包放到pyppeteer的指定目录下解压缩,windows系统的默认目录。其他系统下的默认目录可以参照下面这幅图:

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

2).使用

安装完后就来试试效果。一起来看下面这段代码,在main函数中,先是建立一个浏览器对象,然后打开新的标签页,访问百度主页,对当前页面截图并保存为“example.png”,最后关闭浏览器。前文也提到过,pyppeteer是基于asyncio构建的,所以在使用的时候需要用到async/await结构。

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

运行上面这段代码会发现并没有浏览器弹出运行,这是因为Pyppeteer默认使用的是无头浏览器,如果想要浏览器显示,需要在launch函数中设置参数“headless =False”,程序运行结束后在同一目录下会出现截取到的网页图片:

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

03.实战异步基金爬取

我们前面一直在说Pyppeteer是一款非常高效的web自动化测试工具,其本质原因是由于Pyppeteer是基于asyncio构建的,它的所有属性和方法几乎都是coroutine对象,因此在构建异步程序的时候非常方便,天生就支持异步运行。

下面就来对比顺序执行和异步运行的效率究竟如何:

1).基金爬取

我们把天天基金网中的开放式基金净值数据爬取作为本次的实验任务,下面这张图是一支基金的历史净值数据,这个页面是js加载的,没办法通过requests直接获取内容信息,因此可以考虑使用模拟浏览器操作的方式进行数据抓取。(事实上基金净值数据的获取是有API接口的,本次任务只是为了演示,不具备实用价值)

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

为了使效果更加明显,我们此次爬取基金列表页(下图)前50支基金的近20个交易日的净值数据。

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

2).顺序执行

程序构建的基本思路是新建一个browser浏览器和一个页面page,依次访问每个基金的净值数据页面并爬取数据。核心代码如下:

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

代码中的get_data()函数用于净值数据页面解析和数据的转化,get_all_codes()函数用于获取全部开放式基金的基金代码(共6000余个)。虽然程序也使用了async/await的结构,但是对多个基金的净值数据获取都是在callurl_and_getdata()函数中顺序执行的,之所以这样写是因为pyppeteer中的方法都是coroutine对象,必须以这种形式构建程序。

为了排除打开浏览器的耗时干扰,我们仅统计访问页面和数据抓取的用时,其结果为:12.08秒。

3).异步执行

下面我们把程序改造一下,功能函数都不变,主要是把对fundlist的循环运行改装成async的task对象。核心代码如下:

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

耗时的统计区间仍然从浏览器打开后开始计算,其运行用时为:2.18秒,相比顺序执行要快了6倍。可以想象,如果需要爬取的工作量比较大,顺序执行需要10个小时的话,异步执行可能只需要不到2个小时,优化效果可谓非常明显了。

有兴趣的同学可以动手试试这个库。

感谢阅读

Python学习资料

如果你想学习Python帮助你实现自动化办公,或者准备学习Python或者正在学习,下面这些你应该能用得上,有需要可以领取。

① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习
⑤历年互联网企业Python面试真题,复习时非常方便

文末有领取方式哦

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

二、Python课程视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

三、Python实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

四、Python漫画教程

用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。
有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

五、互联网企业面试真题

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据
有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要也可以扫描下方csdn官方二维码或者点击主页和文章下方的微信卡片获取领取方式,【保证100%免费】文章来源地址https://www.toymoban.com/news/detail-775261.html

有什么软件能代替selenium,爬虫,selenium,测试工具,python,职场和发展,开发语言,大数据

到了这里,关于爬虫界又出神器|一款比selenium更高效的利器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 探秘高效爬虫技巧:Selenium + 代理解决IP封禁问题!----selenium爬虫添加代理

    我们使用selenium用于爬虫,可能由于单个域名下短时间内请求过多,造成IP封禁的问题。为了应对这个问题,我们通常会采取添加代理的方式。 为了绕开IP封禁问题,最常见的思路是使用代理。在Chrome浏览器中,我们可以通过白名单的方式在代理网站上添加自己的任务机公网

    2024年02月05日
    浏览(64)
  • 使用Scrapy框架集成Selenium实现高效爬虫

    在网络爬虫的开发中,有时候我们需要处理一些JavaScript动态生成的内容或进行一些复杂的操作,这时候传统的基于请求和响应的爬虫框架就显得力不从心了。为了解决这个问题,我们可以使用Scrapy框架集成Selenium来实现高效的爬虫。 Scrapy是一个使用Python编写的开源网络爬虫框

    2024年02月09日
    浏览(47)
  • 26. selenium:浏览器自动测试模块——一款方便且能装X的爬虫工具(附多个实例)

    目录 前言 什么是selenium? 配置selenium 安装selenium库 安装浏览器驱动(以Chrome为例)  使用selenium库 例1:实现打开网页拿取网页标题 运行效果 例2:实现抓取某招聘网站Python岗位的职位信息 运行效果 例3:实现抓取推荐新闻的标题和正文(涉及子页面的切换) 运行效果 例4:

    2024年02月04日
    浏览(53)
  • Arthas -- 一款释放潜力的神器

    阿里巴巴 Arthas 是一个诊断工具,可以用于监视、分析和解决 Java 应用程序的问题。使用 Arthas 的一个主要优点是,我们不需要修改代码,甚至不需要重新启动我们想要监视的 Java 服务。 在本教程中,我们将首先安装 Arthas,在此之后,通过一个简单的案例来演示 Arthas 的一些

    2024年02月15日
    浏览(37)
  • 一款可以让 ChatGPT 联网的神器!

    我们知道,不论是 GPT-3.5 还是 GPT-4.0,他们的知识库都是截至到 2021 年 9 月的。还无法实现即时联网并获取最新的咨询信息。 我之前在星球分享过的谷歌浏览器插件 ChatGPT for Google,可以在进行谷歌网页搜索的同时,获取 ChatGPT 的回答。但是 ChatGPT 依然无法联网。今天分享一个

    2024年02月06日
    浏览(47)
  • 又一款可视化神器,开源了!

    在互联网数据大爆炸的这几年,各类数据处理、数据可视化的需求使得 GitHub 上诞生了一大批高质量的 BI 工具。 借助这些 BI 工具,我们能够大幅提升数据分析效率、生成更高质量的项目报告,让用户通过直观的数据看到结果,减低沟通成本。 不过,还是有很多同学跟我反馈

    2024年02月02日
    浏览(42)
  • AI自动写文章网站:撰稿神器还是创作利器?

    1.什么是ai自动写文章网站? AI自动撰稿平台,利用AI技术实现各类题材文章自动化生成,用户只需在输入或选定主题后,系统即能依据预先设定的算法及模型产出高质量文本。此类平台能够显著节约撰写成本及时间,为用户提供便捷的写作工具。 2. ai自动写文章网站有

    2024年04月13日
    浏览(38)
  • SSH远程终端神器,你在用哪一款

    唠嗑部分 在我们日常开发中啊,不可避免的要与Linux打交道,虽然我们作为开发,不要求我们对Linux有多么的专业,但是基本的操作还是要会的,举几个常用的例子: 1、查看nginx配置,配置转发 2、清理maven仓库依赖 3、搭建环境,如redis、网关、部署服务、查看服务日志排查

    2024年02月05日
    浏览(36)
  • 亲测,一款超级好用的思维导图神器

           这几天正在构思一篇论文,选课题,查资料这两项完成了,但构思框架却犯了难,手写太过复杂,word处理又太耗费时间,偶然间看到了🌲树图TreeMind🌲这个思维导图制作网站,一下子就被里面思维导图模板吸引了。 50w+的模板涵盖了各个领域,搜索就能得到你

    2024年02月11日
    浏览(44)
  • 一款MAC下集成式的WEB开发利器——ServBay

    ServBay是一个集成式、图形化的本地化Web开发环境。 开发者通过ServBay几分钟就能部署一个本地化的开发环境。解决了Web开发者(比如PHP、Nodejs)、测试工程师、小型团队安装和维护开发测试环境的问题,同时可以快速的进行环境的升级以及维护。 ServBay还将Web服务器,数据库

    2024年03月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包