这个爬虫太好用,学会了感觉要进去~~~

职场   其他   2024-12-17 11:27   福建  
今天给大家介绍一个开源的网络爬虫和浏览器自动化工具: Crawlee
按官网给的定义:Crawlee是一个网络爬虫和浏览器自动化库,可以帮助我们快速构建可靠的爬虫。
Crawlee 就像是一个网络数据收集和网页操作的万能工具箱,我们可以用它来从网上抓取信息,也可以让它像真人操作浏览器完成一些网页上的任务。
Crawlee 提供了一套工具,让你能够爬取网页链接、抓取数据,并将其存储到磁盘或云端,同时保持高度的可配置性,以满足你项目的需求。
Crawlee 使用 JavaScript 和 TypeScript 编写,我们可以用它来抓取网页上的文字、图片和其他文件,为人工智能提供训练数据。

使用场景:

  • 网页抓取:如抓取新闻网站、社交媒体、商品信息等。

  • 数据挖掘:从网页中提取结构化数据,用于市场分析、研究等。

Crawlee 也支持 Python,可以帮助我们构建可靠的 Python 网络爬虫:
开源地址:https://github.com/apify/crawlee
官网:https://crawlee.dev/
Python 版官网:https://crawlee.dev/python
Python 版开源地址:https://github.com/apify/crawlee-python

安装测试

尝试 Crawlee 的最快方法是使用 Crawlee CLI 并选择入门示例。
CLI 会为你安装所有必要的依赖项,并添加样板代码供你使用:
npx crawlee create my-crawler
进入创建的 my-crawler 目录,并启动测试:
cd my-crawlernpm start
我们也可以将 Crawlee 添加到你自己的项目中,使用以下命令来安装:
npm install crawlee playwright
接下来我们建立一个测试代码,以新浪新闻首页 https://news.sina.com.cn 为例,页面的新闻标题和链接结构大致如下:
  • 新闻标题:通常使用 a 标签包裹,类名可能是 news-item 或其他动态类。
  • 链接:嵌套在 a 标签的 href 属性里。
你需要使用浏览器开发者工具(F12)来确定页面中的具体选择器,比如:  
<a href="https://news.sina.com.cn/article/123456" class="news-item"> 新浪新闻标题 </a>
提取链接,输出结果:
import { PlaywrightCrawler } from 'crawlee';
const crawler = new PlaywrightCrawler({ // 页面处理逻辑 requestHandler: async ({ request, page, enqueueLinks, log }) => { log.info(`Crawling: ${request.url}`);
// 提取新闻标题和链接 const articles = await page.$$eval('a', (links) => links .filter((link) => link.textContent.trim() && link.href.includes('news.sina.com.cn')) .map((link) => ({ title: link.textContent.trim(), url: link.href, })) );
// 输出结果 articles.forEach((article) => { console.log(`Title: ${article.title}`); console.log(`Link: ${article.url}`); console.log('---'); });
// 可选:自动发现并抓取更多链接 await enqueueLinks(); }, launchContext: { launchOptions: { headless: true, // 无头模式 }, },});
(async () => { // 添加抓取目标:新浪新闻首页 await crawler.addRequests(['https://news.sina.com.cn']);
// 开始运行爬虫 await crawler.run();})();
开始抓取,输出信息如下:
默认情况下,Crawlee 会将数据存储在当前工作目录下的 ./storage 文件夹中:
python 使用 pip 安装:
pip install 'crawlee[all]'
然后,安装 Playwright 依赖:
playwright install
验证 Crawlee 是否成功安装:
python -c 'import crawlee; print(crawlee.__version__)'





菜鸟教程
学的不仅是技术,更是梦想!
 最新文章