js 抓取网页内容(旅行网站的飞行时间或Airbnb,使用Node.js库)
优采云 发布时间: 2022-01-15 22:20js 抓取网页内容(旅行网站的飞行时间或Airbnb,使用Node.js库)
目前,由于其用例的数量,企业对网络抓取的采用已大大增加。您可能需要采集航班时间或 Airbnb 列表以进行旅行网站,或者您可能想要采集数据(例如来自不同电子商务网站s 的价目表)以进行价格比较。也许您需要为机器学习采集训练和测试数据集。这就是网络抓取发挥作用的地方。
在这里,我们将探索最好的网络抓取工具。
傀儡师
Puppeteer 不仅仅是一个网络爬虫。它是一个 Node.js 库,允许您使用高级 API 控制 Chrome/Chromium 浏览器。Puppeteer 默认运行无头,但可以配置为运行完全无头 Chrome 或 Chromium。
使用 Puppeteer,您可以执行以下操作:
切里奥
Cheerio 是一个用于解析令牌的库。它提供了一个用于操作结果数据结构的 API。Cheerio 最好的一点是它不像网络浏览器那样解释结果。但是,它不会产生视觉效果,也不会加载外部资源或应用 CSS。因此,如果您的用例需要它们,您需要考虑像 PhantomJS 这样的项目。
值得一提的是,使用 Node.js 抓取 网站 在 Cheerio 中要容易得多。像 Walmart 这样的公司使用 Cheerio 为其移动设备 网站 托管服务器渲染。
请求-承诺
Request-Promise 是 npm 实际库的变体。它通过自动浏览器提供了更快的解决方案。当内容不是动态呈现时,可以使用此网络抓取工具。如果您使用身份验证系统处理 网站,它可能是更高级的解决方案。如果我们将其与 Puppeteer 进行比较,则在使用方面完全相反。
恶梦
Nightmare 是一个高级浏览器自动化库,将 Electron 作为浏览器运行。这是一个精简版,或者更确切地说是 Puppeteer 的简化版。它具有提供更多灵活性的插件,包括对文件下载的支持。
渗透
Osmosis 是一个 HTML/XML 解析器和网络爬虫。它是用 Node.js 编写的,并带有 CSS3/xpath 选择器和一个轻量级的 HTTP 包装器。如果将它与 Cheerio、jQuery 和 jsdom 进行比较,它没有明显的依赖关系。
总结
除了这些网络爬虫,您还可以使用许多其他工具和资源。这一切都取决于您的项目要求。但是,有些 网站 不允许抓取,因此在尝试抓取任何 网站 之前,请确保您做得很好。