并不明显2020年最受欢迎的Web抓取JavaScript库

2020-07-01 03:37:08

我们想用一种新的编程语言JavaScript来继续我们关于2020年最受欢迎的5个Web抓取库的帖子。

JS是一种非常知名的语言,拥有广泛的传播和社区支持。它既可以用于客户端也可以用于服务器端的web抓取脚本,这使得它非常适合编写您的刮取器和爬行器。

这些库中的大多数优点都可以通过使用我们的API获得,其中一些库可以与其一起堆叠使用。

Axios是用于浏览器和Node.js的基于Promise的HTTP客户端。但究竟为什么是这个图书馆呢?有很多库可以用来代替众所周知的请求:GET、SuperAgent、Node-Fetch。但是Axios不仅适用于Node.js,也适用于客户端。

const axios=Required(';axios';);//向具有给定IDaxios.get(';/user?id=12345';)的用户发出请求。THEN(Function(Response){//Handle Success console.log(Response);}).catch(Function(Error){//Handle Error console.log(Error);}).Then(Function(){//Always Executed}));

cheerio实现了核心jQuery的一个子集。简而言之,您只需将jQuery和Cheerio环境替换为Web抓取即可。你猜怎么着?它与Axios具有相同的好处-您也可以从Client和Node.js使用它。

有关使用示例,您可以查看我们的另一篇文章:Amazon scraping。相对容易。

Selenium是最流行的Web驱动程序,它有很多用于大多数编程语言的包装器。质量保证工程师、自动化专家、开发人员、数据科学家-所有人都至少使用过这个完美的工具。对于Web抓取来说,它就像一把瑞士刀-不需要任何额外的库,因为任何操作都可以像真正的用户一样使用浏览器执行:页面打开、按钮单击、表单填充、验证码解析等等。

const{生成器,依据,键,直到}=Required(';Selenium-Webdriver';);(异步函数示例(){让Driver=等待新的Builder().forBrowser(';firefox';).build();尝试{等待driver.get(';http://www.google.com/ncr';);等待driver.findElement(By.name(';q';));.sendKeys(';webdriver';,密钥.RETURN);等待驱动程序。等待(直到l.TitleIs(';Webdriver-Google搜索),1000);}最后{等待驱动程序。退出();}})();

关于Puppeteer,我们可以说很多话:它是可靠的、可投入生产的库,有很好的社区支持。基本上,Puppeteer是一个Node.js库,它提供了一个简单高效的API,可以让你控制Google的Chrome或Chromium浏览器。因此,您可以运行特定的站点JavaScript(以及使用Selenium),并基于Vue.js、React.js、ANGING等抓取单页面应用程序。

我们有一个很好的使用Puppeteer来抓取基于角度的站点的例子,您可以在这里查看它:AngularJS站点抓取。简单的交易?

此外,我们建议您查看一个很棒的木偶资源精选列表:https://github.com/transitive-bullshit/awesome-puppeteer。

不像木偶那样有名的图书馆,但可以被命名为木偶2,因为剧作家是由以前的木偶贡献者维护的图书馆。与Puppeteer不同,它支持Chrome、Chromium、Webkit和Firefox后端。

为确保接口基本一致,请看官方示例:

const playwright=Required(';playwright';);(async()=>;{for(const BrowserType of[';Chrome';,';Firefox';,';webkit';]){const Browser=等待剧作家[BrowserType].Launch();Const Context=等待Browser.newContext();const page=等待上下文.newContext。等待page.creenshot({path:`Example-${BrowserType}.png`});等待Browser.close();}})();

你总是可以决定用什么来处理你的特定网络抓取案例,但很明显,互联网上的数据量呈指数级增长,数据挖掘成为你业务增长的重要工具。但请记住,与其选择可能用处不大的花哨工具,不如专注于找出最适合您需求的工具。