本博客是有关如何抓取 Crunchbase 数据的分步教程。 Crunchbase 是私营公司勘探和研究解决方案的主要提供商之一,拥有令人印象深刻的服务记录 超过75万人 全世界。仅在 2024 年 XNUMX 月,Crunchbase 就吸引了 7.7万人次 寻求对初创企业和商业企业动态世界的洞察。

Crunchbase 也是企业家、投资者、销售专业人士和市场研究人员等的首选平台,拥有包含 3 万家上市公司的数据存储库。

Crunchbase 用户和访客

然而,出于分析或研究目的访问和提取这些数据可能具有挑战性。在本指南中,我们将向您展示 Crunchbase 抓取的简单步骤。

我们将探索如何使用 Python、BeautifulSoup 和其他相关库创建 Crunchbase Scraper。我们还将集成 Crawlbase 的 Crawling API,这是一个强大的 Crunchbase API,旨在有效绕过这些障碍。让我们深入了解该项目的详细信息。

1。 先决条件

2. 安装依赖项

3.爬取Crunchbase网页

4. 抓取公司名称

5. 抓取公司描述

6. 抓取公司地点

7. 刮削公司员工

8. 抓取公司网站 URL

9. 刮取公司排名

10. 抓取公司创始人

11. 完成 Crunchbase Scraper 代码

12。 经常问的问题

该项目旨在帮助您构建一个使用 Python 和 BeautifulSoup 进行抓取的 Crunchbase 抓取器。它利用 Crawlbase 的爬行 API绕过验证码 和潜在的块并获取页面内容。我们的目标是提取 Crunchbase 上列出的公司的各种详细信息,用于市场研究、投资分析、竞争对手分析、合作伙伴识别、招聘等。

为此,我们将瞄准 Free Introduction 特定的 Crunchbase URL 作为我们的示例。

Crunchbase

以下是我们将从 Crunchbase 公司页面中提取的数据点列表:

  1. 称谓: 公司名称,例如“OpenAI”。
  2. 描述: 公司活动的简要概述或总结,例如“专门从事人工智能的研究组织”。
  3. 地点: 公司所在的地理位置,例如“美国加利福尼亚州旧金山”。
  4. 员工人数: 公司雇用的大概人数,例如“超过 100 名员工”。
  5. 公司网址:公司官方网站的网址,例如“https://www.openai.com/“。
  6. 排名: 公司在 Crunchbase 数据库中的位置或排​​名,例如“在 Crunchbase 中排名第 5”。
  7. 成立日期:公司成立日期,如“Founded in 2015”。
  8. 创始人: 公司创始人的名字,例如“Elon Musk 和 Sam Altman”。

通过提取 Crunchbase 数据,该脚本旨在为 Crunchbase 上列出的公司的简介提供有价值的知识。这些数据还可以使利益相关者深入了解市场动态、竞争格局和行业趋势,最终支持战略决策和明智的行动。

了解项目范围和数据提取过程后,我们现在可以继续设置必要的先决条件并准备编码环境。

1. 抓取 Crunchbase 数据的先决条件

在我们继续使用 Python 抓取 Crunchbase 并利用 Crawlbase API 的强大功能之前,确保您具备必要的先决条件非常重要。这些基本元素将为您提供有效启动网络抓取项目所需的知识、工具和访问权限。

让我们讨论开始网络抓取项目所需的关键先决条件,特别是从 Crunchbase 中提取数据:

Python基础知识

熟悉 蟒蛇 编程语言是必不可少的。这包括了解如何编写和执行 Python 代码。

这是一个建议: 如果您是 Python 新手,有大量资源可以帮助您学习。类似的网站 Codecademy, CourseraUdemy 提供适合初学者的 Python 入门课程。此外,阅读 Python 文档并在诸如此类的平台上练习编码练习 力码 or HackerRank 可以巩固你的理解。

Crawlbase API 帐户

如何创建一个帐户: 访问 Crawlbase 网站并导航至 注册页面。填写所需信息以创建您的帐户。注册后,您将从以下位置获取您的 API 凭据 账户文件 页面上发布服务提醒。

爬网仪表板

API 凭证的重要性: 将您的 API 凭据视为敏感信息。它们对于访问 Crawlbase 的服务和执行网络抓取任务至关重要。确保它们的安全并避免与未经授权的个人共享它们。

选择集成开发环境 (IDE)

建议: 对于 Python 开发,流行的 IDE 包括 PyCharm, VSCode (Visual Studio 代码),以及 朱皮特 笔记本。每个 IDE 都有其优点,因此您可能需要探索它们以找到最适合您需求的一个。

IDE安装: 只需从各自的网站下载并安装您选择的 IDE。按照提供的安装说明进行操作,您就可以开始使用 Python 进行编码了。

2. 安装依赖项

首先,确保安装了Python。访问官方 Python网站 并下载与您的操作系统兼容的最新版本。或者,您可以使用包管理器,例如 蟒蛇,它提供了全面的 Python 发行版以及流行的软件包和开发环境。

按照 Python 网站或通过 Anaconda 安装程序提供的安装说明进行操作。确保您的系统上正确安装并配置了 Python。

软件包安装

要设置用于网页抓取的 Python 环境,请在安装 Python 后打开命令提示符或终端。然后,通过 mkdir 命令(在 macOS/Linux 上)或通过文件资源管理器(在 Windows 上)在系统上创建一个目录来存放 Python scraper 代码。

接下来,通过在命令提示符或终端中执行特定命令,使用 Python 的包管理器 pip 安装所需的包。

1
2
点安装爬虫库
点安装beautifulsoup4

这些命令将下载并安装所需的库:

  • Crawlbase Python 库: Crawlbase 库提供了一个方便的 Python 类,设计为 Crawlbase API(Crawling API、Scraper API 等)的包装器。这个轻量级且无依赖性的类可以将 Crawlbase 的网络抓取功能无缝集成到 Python 应用程序中。
  • 美丽汤: 作为最广泛使用的网页抓取Python框架之一,Beautiful Soup以其直观的功能简化了HTML解析,使得从网页中提取数据变得更加容易。

3.爬取Crunchbase网页

现在我们已经安装了重要的依赖项,让我们开始编码过程。

提取 Crunchbase 数据涉及使用 Crawling API 获取所需页面的 HTML 内容。以下是使用 Python 和提供的代码片段抓取 Crunchbase 网页的步骤:

导入 CrawlingAPI 类:

  • 导入 CrawlingAPI 班级从 crawlbase 图书馆。此类支持与 Crawling API 进行交互。

定义 crawl 功能:

  • 创建一个名为 crawl 它需要两个参数: page_url (要抓取的 Crunchbase 网页的 URL)和 api_token (您的 Crawlbase API 令牌)。

初始化 CrawlingAPI 对象:

  • 里面的 crawl 函数,初始化 CrawlingAPI 对象,方法是将您的 API 令牌作为字典的值传递给 'token' 键。

获取页面内容:

  • 使用 get() 的方法 CrawlingAPI 对象获取指定的HTML内容 page_url。将响应存储在 response 变量。

检查响应状态:

  • 检查响应状态代码(使用访问 response['status_code'])等于200,表示请求成功。

提取数据或处理错误:

  • 如果请求成功,则提取并打印页面的 HTML 内容(使用 response["body"])。否则,打印一条错误消息,指出失败的原因。

指定页面 URL 和 API 令牌:

  • __main__ 脚本块中,指定要抓取的 Crunchbase 页面 URL (page_url)和您的 Crawlbase API JavaScript 令牌(api_token).

调用爬取函数:

  • 最后,致电 crawl 具有指定的函数 page_urlapi_token 作为启动爬网过程的参数。

这是实现这些步骤的代码。您可以复制并粘贴代码并将其另存为目录中的 Python 文件。例如 scraper.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 爬行基地 进口 抓取API

DEF (page_url、api_token):
# 使用您的令牌初始化 CrawlingAPI 对象
api = 爬行API({'令牌': api_token})

# 获取页面内容
响应 = api.get(page_url)

# 检查请求是否成功
if 回复['状态代码'] == 200:
# 提取数据
打印(回复[“身体”])
其他:
打印(f“错误: {回复}")

if __名字__ == “__主要的__”:
# 指定要抓取的 Crunchbase 页面 URL
页面网址 = 'https://www.crunchbase.com/organization/openai'

# 指定您的 Crawlbase 令牌。使用 Crunchbase 的 JavaScript 令牌
api_令牌= 'Crawlbase_Token'

# 调用爬取函数
抓取(page_url,api_token)

让我们执行上面的代码片段,要运行它,我们需要执行以下命令:

1
蟒蛇 scraper.py

输出:

爬取crunchbase的html数据

我们已经成功爬取了Crunchbase网页的HTML数据。接下来,我们将继续使用 Python 中的 BeautifulSoup4 包来抓取 Crunchbase 数据。

4. 刮取 Crunchbase 公司名称

现在,我们重点关注从 Crunchbase 网页爬取的 HTML 中提取公司名称。我们将使用 BeautifulSoup4 包来解析 HTML 内容并查找相关信息。

在 Python 脚本或函数的开头导入 BeautifulSoup。

1
 bs4 进口 美丽汤

标识包含公司名称的 HTML 元素。检查 Crunchbase 网页或查看 HTML 源代码以确定适当的选择器。

识别 html 元素 - 选择器

利用 BeautifulSoup 选择器来定位 title 网页中的元素。这涉及指定与所需元素匹配的适当类。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
DEF 抓取数据(响应):
尝试:
# 使用 Beautiful Soup 解析 HTML 内容
汤 = BeautifulSoup(响应['身体'], 'html.parser')

# 提取 Crunchbase 页面的标题
标题=汤.find('h1', 类_='个人资料名称').get_text(条=)

回报 {
'标题': 标题,
}
特殊课程 as e:
打印(f“发生错误: {e}")
回报 {}

此代码片段查找第一次出现的 <h1> 变量 soup 中存储的 HTML 内容中具有类“profile-name”的元素。然后,它提取该元素内的文本,并使用以下命令删除任何多余的空格或换行符: get_text(strip=True) 方法。最后,它将清理后的文本分配给变量 title 并返回 title.

5.Scrape Crunchbase 公司描述

在本节中,我们将重点关注从 Crunchbase 网页的爬网 HTML 中提取公司的描述。

scrape crunchbase 公司描述
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DEF 抓取数据(响应):
尝试:
# 使用 Beautiful Soup 解析 HTML 内容
汤 = BeautifulSoup(响应['身体'], 'html.parser')

# 提取Crunchbase页面的描述
描述=汤.find('跨度', 类_='描述').get_text(条=)

回报 {
'描述': 描述,
}
特殊课程 as e:
打印(f“发生错误: {e}")
回报 {}

此代码通过搜索特定的内容来提取 Crunchbase 页面的描述 <span> 解析的 HTML 内容中具有“description”类属性的标记。然后它以字典格式返回此描述文本。

6. 抓取 Crunchbase 的公司位置

公司位置提供了有关公司所在地的宝贵信息,这对于各种分析和业务目的至关重要。

在抓取公司位置时,我们将继续利用 BeautifulSoup4 包来解析 HTML 内容并查找相关信息。公司的位置通常可以在网页内容中找到,通常在特定的 HTML 元素中,如下所示:

刮拐杖基地公司位置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DEF 抓取数据(响应):
尝试:
# 使用 Beautiful Soup 解析 HTML 内容
汤 = BeautifulSoup(响应['身体'], 'html.parser')

# 提取 Crunchbase 页面的位置
位置=汤.select_one('.section-content-wrapper li.ng-star-inserted').text.strip()

回报 {
'地点': 地点,
}
特殊课程 as e:
打印(f“发生错误: {e}")
回报 {}

此代码片段从页面上的特定元素中提取位置信息,特别是从 <li> 内的元素 .section-content-wrapper。然后,它返回此信息作为包含其他提取数据的字典的一部分。此外,如果在抓取过程中发生任何情况,它还会通过打印错误消息来处理异常。

7. 搜刮 Crunchbase 公司员工

员工人数是一个重要指标,可以洞察公司的规模和规模。与前面的部分类似,我们将利用 BeautifulSoup4 包来解析 HTML 内容并查找相关信息。员工人数通常位于位置部分下方,如下所示:

刮拐杖公司员工
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DEF 抓取数据(响应):
尝试:
# 使用 Beautiful Soup 解析 HTML 内容
汤 = BeautifulSoup(响应['身体'], 'html.parser')

# 提取 Crunchbase 页面的员工
员工 = soup.select_one('.section-content-wrapper li.ng-star-inserted:nth-of-type(2)').text.strip()

回报 {
'雇员': 雇员,
}
特殊课程 as e:
打印(f“发生错误: {e}")
回报 {}

提供的代码定义了一个名为的函数 scrape_data 负责从网页的 HTML 内容中提取数据。它利用 BeautifulSoup 来解析 HTML,专门针对 Crunchbase 网页上代表公司员工数量的特定 HTML 元素。在 try-except 块中,代码尝试使用 CSS 选择器提取此元素的文本内容 '.section-content-wrapper li.ng-star-inserted:nth-of-type(2)'.

如果成功,提取的员工数量将作为字典的一部分返回。如果在抓取过程中出现任何异常,代码会通过打印错误消息并返回空字典来处理它们,表明不存在提取的数据。

8. 抓取 Crunchbase 的公司网站 URL

公司网站 URL 是一条基本信息,可让您直接访问公司的在线信息。通常,公司网站 URL 位于“关于”部分,如下所示:

抓取 Crunchbase 公司 url

与前面的部分非常相似,我们将使用 BeautifulSoup4 包来浏览 Crunchbase 网页的 HTML 内容,并使用 CSS 选择器精确定位数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
DEF 抓取数据(响应):
尝试:
# 使用 Beautiful Soup 解析 HTML 内容
汤 = BeautifulSoup(响应['身体'], 'html.parser')

# 提取 Crunchbase 页面的公司 URL
company_url = soup.select_one('.section-content-wrapper li.ng-star-inserted:nth-of-type(5) a[role="link"]')['href']

回报 {
'公司网址':公司网址,
}
特殊课程 as e:
打印(f“发生错误: {e}")
回报 {}

这段代码定义了一个名为 scrape_data 尝试从 Crunchbase 网页的 HTML 内容中提取公司网站 URL。我们解析 HTML 内容并使用 CSS 选择器 .section-content-wrapper li.ng-star-inserted:nth-of-type(5) a[role="link"] 来定位具体的 <a> 代表公司 URL 的 (anchor) 元素。

9. 抓取 Crunchbase 的公司排名

公司排名提供了有关公司在其行业或部门中的地位或地位的见解。公司排名位于“关于”部分,通常标记或标识为“排名”或类似名称。

刮擦 Crunchbase 公司排名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DEF 抓取数据(响应):
尝试:
# 使用 Beautiful Soup 解析 HTML 内容
汤 = BeautifulSoup(响应['身体'], 'html.parser')

# 提取 Crunchbase 页面的排名
排名 = soup.select_one('.section-content-wrapper li.ng-star-inserted:nth-of-type(6) 跨度').text.strip()

回报 {
'秩':排名,
}
特殊课程 as e:
打印(f“发生错误: {e}")
回报 {}

此代码片段尝试从 HTML 内容中提取公司的排名。它利用 BeautifulSoup 的 select_one() 方法和 CSS 选择器 .section-content-wrapper li.ng-star-inserted:nth-of-type(6) span 定位代表排名的特定 HTML 元素。

10. Scrape Crunchbase 的公司创始人

通常,有关公司创始人的信息列在公司网页的“关于”部分中,通常标记或标识为“创始人”或类似名称。

刮Crunchbase公司创始人

下面的代码片段演示了如何使用 BeautifulSoup 提取公司创始人的信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
DEF 抓取数据(响应):
尝试:
# 使用 Beautiful Soup 解析 HTML 内容
汤 = BeautifulSoup(响应['身体'], 'html.parser')

# 提取 Crunchbase 页面的创始人
创始人= soup.select_one('.mat-mdc-card.mdc-card .text_and_value li:nth-of-type(5) 字段格式化程序').text.strip()

回报 {
“创始人”:创始人,
}
特殊课程 as e:
打印(f“发生错误: {e}")
回报 {}

此代码片段从 HTML 内容中提取创始人的信息。它利用 BeautifulSoup 的 select_one() 方法和 CSS 选择器 .mat-mdc-card.mdc-card .text_and_value li:nth-of-type(5) field-formatter 找到显示创始人信息的特定 HTML 元素。

11. 完成 Crunchbase Scraper 代码

现在我们已经探索了抓取过程的每个组件并开发了单独的函数来从 Crunchbase 网页中提取特定的数据点,现在是时候将它们整合到一个有凝聚力的脚本中了。

下面的完整代码集成了爬行和抓取数据的功能,可以轻松地从 Crunchbase 资料中收集有关公司的各种信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 爬行基地 进口 抓取API
bs4 进口 美丽汤

DEF (page_url、api_token):
# 使用您的令牌初始化 CrawlingAPI 对象
api = 爬行API({'令牌': api_token})

# 获取页面内容
响应 = api.get(page_url)

# 检查请求是否成功
if 回复['状态代码'] == 200:
# 抓取的数据
scraped_data = scrape_data(响应)

打印(f'{抓取数据}')
其他:
打印(f“错误: {回复}")

DEF 抓取数据(响应):
尝试:
# 使用 Beautiful Soup 解析 HTML 内容
汤 = BeautifulSoup(响应['身体'], 'html.parser')

# 提取 Crunchbase 页面的标题
标题=汤.find('h1', 类_='个人资料名称').get_text(条=)

# 提取Crunchbase页面的描述
描述=汤.find('跨度', 类_='描述').get_text(条=)

# 提取 Crunchbase 页面的位置
位置=汤.select_one('.section-content-wrapper li.ng-star-inserted').text.strip()

# 提取 Crunchbase 页面的员工
员工 = soup.select_one('.section-content-wrapper li.ng-star-inserted:nth-of-type(2)').text.strip()

# 提取 Crunchbase 页面的公司 URL
company_url = soup.select_one('.section-content-wrapper li.ng-star-inserted:nth-of-type(5) a[role="link"]')['href']

# 提取 Crunchbase 页面的排名
排名 = soup.select_one('.section-content-wrapper li.ng-star-inserted:nth-of-type(6) 跨度').text.strip()

# 提取 Crunchbase 页面的创建日期
成立 = soup.select_one('.mat-mdc-card.mdc-card .text_and_value li:nth-of-type(4) 字段格式化程序').text.strip()

# 提取 Crunchbase 页面的创始人
创始人= soup.select_one('.mat-mdc-card.mdc-card .text_and_value li:nth-of-type(5) 字段格式化程序').text.strip()

回报 {
'标题': 标题,
'描述': 描述,
'地点': 地点,
'雇员': 雇员,
'公司网址':公司网址,
'秩':排名,
‘成立’: 成立,
“创始人”:创始人,
}
特殊课程 as e:
打印(f“发生错误: {e}")
回报 {}

if __名字__ == “__主要的__”:
# 指定要抓取的 Crunchbase 页面 URL
页面网址 = 'https://www.crunchbase.com/organization/openai'

# 指定您的 Crawlbase 令牌。使用 Crunchbase 的 JavaScript 令牌
api_令牌= 'Crawlbase_Token'

# 调用爬取函数
抓取(page_url,api_token)

使用命令执行代码 python scraper.py 应提供类似的输出,如下所示:

脆基刮刀

本教程作为使用 Python 和 Crawlbase API 创建 Crunchbase scraper 的综合指南。它显示了从 Crunchbase 公司简介中轻松提取重要信息的分步说明。

请注意,本教程可以免费使用,我们鼓励您将其用于您的项目。无论您是网络抓取新手还是旨在提高技能的经验丰富的开发人员,本教程都是每个人的坚实起点。

请随意调整和自定义提供的代码以满足您的特定要求。您不仅可以使用它来抓取 Crunchbase 数据,还可以将其用作抓取其他感兴趣网站的指南。通过使用本教程中教授的概念和技术,您将准备好自信地处理各种网络抓取任务。

此外,如果您有兴趣探索更多与此类似的项目,您可以浏览以下教程以获得更多灵感:

如何构建 Wayfair 价格跟踪器

如何刮Trulia

用 Python 抓取维基百科 - 终极教程

有关更多自定义选项和访问高级功能,请检查 Crawlbase 抓取 API 文档。如果您有任何疑问或反馈,请随时联系我们 支持团队.

常见问题解答

问:我应该使用 Crunchbase API 还是 Crawling API?

如果您想以结构化方式正式访问 Crunchbase 数据,建议使用官方 Crunchbase API。但是,请注意,通过 Crunchbase API 访问的数据可能有限制。

另一方面,如果您需要更大的自由度和灵活性,或者您的数据需要扩展到 Crunchbase 之外,您可能会发现 Crawlbase 提供的 Crawling API 是更合适的选择。

问:如何从 Crunchbase 提取数据?

  1. 注册 Crawlbase 并获取您的 JavaScript 令牌
  2. 选择目标网站或 URL。
  3. 向 API 发送 HTTP/HTTPS 请求
  4. 与 Python 和 BS4 集成以抓取特定数据
  5. 导入 JSON、CSV 或 Excel 格式的数据

问:Crunchbase 可以刮吗?

使用 Crawlbase 抓取 API 只需几分钟即可在 Crunchbase 上抓取数千个数据点。

有了 Crawlbase 帐户,您就可以利用 JavaScript 令牌来抓取页面的整个 HTML 代码。然后,要提取特定内容,您可以使用 Python BeautifulSoup 或您选择的任何其他第三方解析器开发一个抓取器。

问:Crunchbase 有何用途?

Crunchbase 是一个全球范围内用于查找商业信息的平台。它在企业家、投资者、销售人员和研究人员中很受欢迎。这是了解公司、初创企业、投资者、融资、收购和行业趋势的好地方。

问:Crunchbase 是做什么的?

Crunchbase 提供了一个利用实时公司数据的业务勘探平台。该平台旨在帮助销售人员、首席执行官和个人等,让他们轻松查找、跟踪和关注公司。这使得交易发现和收购更加高效。

问:如何从 Crunchbase 自动提取财务数据?

财务数据隐藏在 Crunchbase 的登录会话后面。为了自动提取数据,您必须执行以下操作:

  • 在真实浏览器上手动登录网站
  • 从浏览器中提取会话cookie
  • 使用以下命令将 cookie 发送到 Crawling API cookie参数.

登录后,您可以使用 Python 应用本教程中演示的相同抓取技术来检索财务数据。