黄页是一种目录服务,列出了各个行业的企业。它最初是一个印刷目录,其中按字母顺序列出企业及其联系信息。随着时间的推移,黄页转变为在线平台,使用户可以更轻松地根据其位置、行业或关键字搜索特定企业。

对于希望寻找行业内潜在客户、供应商或合作伙伴的企业来说,黄页是重要的信息来源。黄页上列出了数百万家企业,它已成为营销人员、研究人员和寻求竞争优势的企业的数据宝库。

黄页每天都有大量的在线流量。其用户友好的界面和全面的覆盖范围吸引了大量访客寻求本地服务、产品和联系信息。

黄页流量统计

无论您是寻求探索新市场的企业家、旨在完善目标受众的营销人员,还是寻求揭示趋势的数据爱好者,抓取黄页数据都是获得可行见解的门户。在本指南中,我们将引导您完成使用 Python 的通用方法以及随后使用强大的 Crawlbase 爬行 API 从黄页中高效提取有价值数据的过程。

让我们开始吧!

目录

  1. 了解用于数据抓取的黄页
  • 浏览黄页 SERP 结构
  • 黄页上的关键数据点
  • 黄页数据的相关性和应用
  1. 设置 Python 环境
  • 安装 Python 和基本库
  • 选择 IDE 进行高效编码
  1. 黄页数据抓取的常见方法
  • 利用 Python 的请求库
  • 检查黄页网站的 HTML 元素
  • 使用 BeautifulSoup 解析 HTML
  • 通用方法的挑战和局限性
  1. 使用黄页抓取API
  • 选择 Crawlbase 抓取 API 的优势
  • Crawlbase 注册和 API 令牌
  • 使用 Crawlbase 库与 Crawling API 接口
  • 从黄页中提取商业信息
  • 管理分页以进行广泛的数据检索
  1. 最后的思考
  2. 常见问题解答(FAQ)

了解用于数据抓取的黄页

黄页是一种有价值的业务开发工具,使公司能够识别其行业内的潜在合作伙伴、供应商或分销商。为了有效地抓取黄页,掌握其结构及其所包含的有价值的数据至关重要。以下是指导您完成的细分:

了解黄页搜索引擎结果页面 (SERP) 的结构对于高效数据抓取至关重要。让我们踏上黄页 SERP 布局之旅,释放提取有价值商业信息的潜力。

  • 搜索查询输入:黄页 SERP 的核心是搜索查询输入,用户可以在其中输入与他们正在寻找的业务或服务相关的关键字。黄页根据这些查询组织搜索结果,因此必须选择准确且相关的关键字来有效提取数据。
  • 业务列表:黄页以企业列表的形式显示搜索结果。每个列表都包含基本详细信息,例如企业名称、联系信息、地址和服务类别。结构化显示允许用户快速扫描并识别与其搜索相关的企业。
  • 分页:黄页跨多个页面组织搜索结果,实现分页系统。用户可以浏览不同的页面来访问更广泛的企业列表。对于数据抓取者来说,处理分页成为确保全面数据检索的关键步骤。
  • 附加过滤器:为了增强用户体验,黄页提供了额外的过滤器。用户可以通过应用位置、业务类别和客户评级等过滤器来优化搜索。作为抓取工具,理解和浏览这些过滤器对于目标数据提取至关重要。
  • 地图整合:黄页将地图功能集成到其 SERP 中,为用户提供营业地点的可视化表示。对于数据抓取者来说,从这些地图中提取地理空间数据可以为各种分析目的添加一层额外的有价值的信息。

了解黄页 SERP 的这些组件为有效的数据抓取奠定了基础。

黄页上的关键数据点

要利用黄页上丰富的业务见解,精确定位关键数据至关重要。让我们探索黄页提供的基本信息,并了解每个数据点如何有助于全面的业务理解。

从黄页抓取数据

公司名称:识别企业依赖于企业名称的准确提取。这是主要标识符,确保数据集结构良好。

联系信息 :提取电话号码和电子邮件地址等联系方式对于促进客户沟通或外展至关重要。

地址:提取地址可以进行地理空间分析,帮助了解业务分布和热门区域。

业务类别:捕获业务类别或行业类型对于创建细分数据集和行业特定分析非常有价值。

评分和评论:抓取用户生成的评分和评论可以深入了解企业的​​声誉和质量,反映客户的情绪。

网站网址:提取网站 URL 可以进一步探索企业并了解其在线产品。

其他服务项目:突出显示企业提供的附加服务可以增加配置文件的深度,帮助用户了解全方位的服务。

营业时间:提取营业时间有助于时间敏感的分析,帮助用户计划特定时间范围内的访问或联系机构。

从黄页中理解和提取这些关键数据点不仅可以构建丰富而详细的数据库,而且可以为各种分析应用奠定基础。

黄页数据的相关性和应用

来自黄页的数据不仅仅是信息;更是信息。它是一个强大的资源,提供有价值的业务见解和应用程序。以下是黄页数据的相关性和应用方式:

黄页抓取的应用
  • 市场分析:洞察市场动态并识别行业趋势。
  • 竞争对手研究:分析竞争对手的产品和市场状况以进行战略规划。
  • 有针对性的营销活动:根据特定行业、地区或业务类型定制营销活动。
  • 业务扩张策略:通过分析高活动区域来确定业务扩展的潜在位置。
  • 消费者行为分析:通过评级、评论和服务了解客户的偏好和行为。
  • 合作伙伴和供应商选择:通过访问联系信息和服务来简化合作伙伴和供应商的选择。
  • 本地业务支持:通过了解当地企业的产品和客户反馈来支持他们。
  • 数据驱动的决策:支持跨部门的数据驱动决策,以进行战略规划。

在接下来的部分中,我们将探索有效抓取黄页的技术,确保检索到这些有价值的业务见解。

设置 Python 环境

为了准备抓取黄页数据,请通过设置 Python 环境来确保流畅的编码体验。这涉及安装 Python、所需的库以及选择 IDE 来简化编码。

安装 Python 和基本库

下载并安装 Python:

首先访问 Python官方网站 并导航至“下载”部分。选择与您的操作系统兼容的最新版本并按照安装说明进行操作。确保在安装过程中选择将 Python 添加到系统路径的选项。

安装所需的库:

对于黄页抓取,我们将使用基本的库,例如 requests 和 BeautifulSoup 在Python中。为了利用 Crawling API,我们将使用 crawlbase 图书馆。打开命令提示符或终端并使用以下命令来安装这些库:

1
2
3
点安装请求
点安装beautifulsoup4
点安装爬虫库

这些库将使您的 Python 脚本能够有效地发送 HTTP 请求并解析 HTML 内容。

选择 IDE 进行高效编码

选择正确的集成开发环境 (IDE) 可以显着增强您的编码体验。以下是一些流行的选择:

PyCharm:PyCharm 是专为 Python 开发的强大 IDE。它提供智能代码完成、调试工具和用户友好界面等功能。您可以从 JetBrains 网站免费下载社区版。

VSCode(Visual Studio 代码):VSCode 是一个轻量级但功能强大的代码编辑器,具有出色的 Python 支持。它提供了广泛的扩展,使其可以针对不同的编程语言进行定制。您可以从 Visual Studio Code 官方网站下载它。

Jupyter笔记本:为了获得更具交互性的编码体验,尤其是数据分析任务,Jupyter Notebooks 是一个流行的选择。您可以使用以下命令安装 Jupyter pip install jupyter 并启动它 jupyter notebook 命令。

选择符合您的偏好和工作流程的 IDE。安装 Python 并准备好必要的库后,您就可以开始使用 Python 从黄页中抓取有价值数据的旅程了。

黄页数据抓取的常见方法

在本节中,我们将探讨使用 Python 从黄页中抓取数据的常见方法。我们将利用基本库,例如用于发出 HTTP 请求的 Requests 库和用于解析 HTML 内容的 BeautifulSoup。

在我们的示例中,我们重点关注与位于“加利福尼亚州洛杉矶”的“信息技术”企业相关的数据。

利用 Python 的请求库

为了启动抓取过程,我们将使用 Requests 库将 HTTP 请求发送到黄页服务器。这个库允许我们检索网页的 HTML 内容,构成我们数据提取的基础。

黄页利用 search_terms 搜索查询的 URL 中的参数 geo_location_terms 位置的参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
进口 要求
urllib.parse 进口 网址

# 搜索查询和位置示例
搜索查询= “信息技术”
位置= “加利福尼亚州洛杉矶”

# 使用搜索词和位置构建 URL
基本网址 = “https://www.yellowpages.com/search?”
参数= {“搜索词”:搜索查询, “地理位置条款”: 地点}
url = base_url + urlencode(参数)

响应 = requests.get(url)

if 响应.status_code == 200:
html_content = 响应. 文本

# HTML内容的进一步处理
打印(html_内容)
其他:
打印(f"无法获取页面。状态代码: {响应.status_code}")

打开您喜欢的文本编辑器或 IDE,复制提供的代码,并将其保存在 Python 文件中。例如,将其命名为 yellowpages_scraper.py.

运行脚本:

打开终端或命令提示符并导航到您保存的目录 yellowpages_scraper.py。使用以下命令执行脚本:

1
蟒蛇 Yellowpages_scraper.py

当您按下 Enter 键时,您的脚本就会生效,向黄页网站发送请求,检索 HTML 内容并将其显示在您的终端上。

输出 HTML 快照

检查黄页网站的 HTML 元素:

获得 HTML 内容后,我们需要检查黄页网站的结构以识别相关的 HTML 元素。这涉及了解页面的文档对象模型 (DOM) 并精确定位包含所需数据的元素。

黄页 HTML

请遵循以下几点来有效检查黄页网站:

右键单击并检查:在网页上右键单击打开开发者工具。
浏览 DOM 树:探索文档对象模型 (DOM) 以查找 HTML 标签。
识别独特的属性:寻找独特的属性,例如类名或 ID。
使用选择器:利用 CSS 选择器进行精确的元素识别。
考虑分页:检查多个页面的分页元素。
动态内容的帐户:注意通过 JavaScript 动态加载的内容。
文件调查结果:记录已识别的元素和模式,以便高效抓取。

使用 BeautifulSoup 解析 HTML

识别出相关的 HTML 元素后,我们将使用 BeautifulSoup 库来解析 HTML 并提取所需的数据。 BeautifulSoup 提供了一种便捷的方式来导航和搜索 HTML 树。

对于这个例子,我们将提取基本细节,例如 公司名称、联系信息、地址、业务类别、评级和评论计数、业务年限以及网站 URL 来自黄页 SERP 上的每个结果。现在,让我们增强现有脚本以直接从 HTML 收集此信息。

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
进口 要求
urllib.parse 进口 网址
bs4 进口 美丽汤
进口 JSON

DEF 构造网址(查询、位置):
基本网址 = “https://www.yellowpages.com/search?”
参数= {“搜索词”: 询问, “地理位置条款”: 地点}
回报 base_url + urlencode(参数)

DEF 获取html(网址):
响应 = requests.get(url)
if 响应.status_code == 200:
回报 响应文本
其他:
打印(f"无法获取页面。状态代码: {响应.status_code}")
回报 不包含

DEF 提取详细信息(html_内容):
抓取数据 = []

汤 = BeautifulSoup(html_content, 'html.parser')

结果=汤.select('div#main-content div.search-results.organic div.result')

导致 in 结果:
# 提取重要的详细信息,例如公司名称、联系信息、地址等。
业务名称 = 结果.find('一种', 类_='企业名称')
contact_info = 结果.find('div', 类_='电话')
地址 = 结果.find('div', 类_='地址')
业务类别 = 结果.find('div', 类_=“类别”)
评分 = 结果.find('div', 类_=“结果评级”)
评论计数 = 结果.find('跨度', 类_='数数')
年数业务 = 结果.select_one('div.badges div.years-with-yp > div.count 强')
website_url = 结果.find('一种', 类_=“跟踪访问网站”)

结果详细信息 = {
「企业名称」: 业务名称.text.strip() if 企业名称 其他 不包含,
“联系信息”: contact_info.text.strip() if 联系信息 其他 不包含,
“地址”: 地址.text.strip() if 地址 其他 不包含,
「业务类别」:business_categories.text.strip() if 业务_类别 其他 不包含,
「收视率」: ''.join(评级.get('班级', []))。代替(“结果评级”, '').strip().replace('', '&') if 评分 其他 不包含,
“评论数”:reviews_count.text.strip() if 评论数 其他 不包含,
《从业多年》:year_in_business.text.strip() if 经营年数 其他 不包含,
“网址”: 网站_url.get('href')。条() if 网址 其他 不包含
}
scraped_data.append(结果详细信息)

回报 抓取的数据

DEF ():
# 搜索查询和位置示例
搜索查询= “信息技术”
位置= “加利福尼亚州洛杉矶”

# 使用搜索词和位置构建 URL
search_url=construct_url(search_query, 位置)

# 从黄页 SERP 中获取 HTML 内容
html_content = fetch_html(搜索网址)

if html_内容:
# 从 HTML 内容中提取重要细节
结果详细信息=提取详细信息(html_内容)
打印(json.dumps(结果详细信息,缩进=2))
其他:
打印(“由于 HTML 检索失败而退出。”)

if __名字__ == “__主要的__”:
主()

该脚本包含用于构造搜索 URL、获取 HTML 内容以及从 HTML 中提取详细信息的函数。如果提取过程中未找到某个元素,则结果字典中的相应值将设置为 None。主函数编排整个过程并打印指定搜索查询和位置提取的详细信息。无

示例输出:

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
[
{
「企业名称」: “洛杉矶计算机工厂”,
“联系信息”: “(310)277-9799”,
“地址”: “2355 Westwood Blvd洛杉矶,CA 90064”,
「业务类别」: “计算机技术援助和支持服务计算机和设备经销商计算机和计算机设备服务和维修”,
「收视率」: 《四点半》,
“评论数”: “(2)”,
《从业多年》: “12年”,
“网址”: “http://lacomputerworks.com”
},
{
「企业名称」: 《征服桌面》,
“联系信息”: “(213)321-1869”,
“地址”: “洛杉矶,CA 90057”,
「业务类别」: “计算机技术援助和支持服务计算机网络设计和系统计算机系统设计师和顾问”,
「收视率」: ,
“评论数”: ,
《从业多年》: ,
“网址”:
},
{
「企业名称」: “我的电脑工作公司”,
“联系信息”: “(877)221-0118”,
“地址”: ,
「业务类别」: “计算机技术援助和支持服务计算机软件和服务计算机和计算机设备服务和维修”,
「收视率」: 《四点半》,
“评论数”: “(43)”,
《从业多年》: “2年”,
“网址”:
},
{
「企业名称」: “PC 和网络专业人士”,
“联系信息”: “(888)823-7767”,
“地址”: “全部洛杉矶,CA 90045”,
「业务类别」: “计算机技术援助和支持服务计算机电缆和电线安装互联网营销和广告”,
「收视率」: “五”,
“评论数”: “(3)”,
《从业多年》: ,
“网址”:
},
{
「企业名称」: “新时代”,
“联系信息”: “(310)657-8632”,
“地址”: “822 S Robertson Blvd Ste 207洛杉矶,CA 90035”,
「业务类别」: “计算机技术援助和支持服务”,
「收视率」: “一”,
“评论数”: “(1)”,
《从业多年》: ,
“网址”: “http://www.excelclasses.net”
},
..... 更多的
]

通用方法的挑战和局限性

虽然使用 Python 抓取黄页数据的常见方法 requestsBeautifulSoup 虽然易于访问,但它存在一些挑战和限制,可能会影响您的抓取工作的效率和成功。

防刮措施
黄页部署了反抓取措施,包括验证码,这可能会阻碍自动抓取脚本并需要手动干预。

速率限制
网站实施速率限制来控制请求频率。超出限制可能会导致暂时或永久的 IP 封锁,从而限制访问。

动态网站结构
包括黄页在内的网站可能会随着时间的推移而改变结构,需要频繁更新脚本以适应修改。

IP阻止
激进的抓取可能会触发 IP 封锁,从而阻碍进一步的访问。自动化解决方案通常是克服 IP 障碍所必需的。

数据提取挑战
用于数据提取的基本 HTML 解析可能会带来挑战,尤其是在不断发展的网站结构中,导致抓取逻辑不太可靠。

为了获得更流畅、更可靠的黄页抓取体验,请考虑使用 Crawlbase 抓取 API,该 API 旨在克服常见的抓取障碍并增强整体流程。

使用黄页抓取API

利用 Crawlbase 的强大功能,释放黄页数据抓取的全部潜力 抓取 API。这种用户友好的方法可以无缝集成到您的 Python 项目中,从而提高效率和可靠性。

告别 IP 块、验证码和合规性问题的挑战。 Crawlbase 的动态内容处理、异步爬行和可定制的请求确保了从黄页进行定制和高速数据检索的可靠解决方案。

受益于全面 文件 反应灵敏 SUPPORT,简化您的抓取体验以实现最高效率。使用 Crawlbase 的 Crawling API 提升您的黄页抓取工作 — 这是精确且可扩展的网络抓取的值得信赖的解决方案。

按照这些简单的步骤即可轻松地将 API 集成到您的 Python 抓取项目中,并体验全新水平的抓取便利性和性能。

Crawlbase 注册和 API 令牌

要开始您的 Crawlbase 之旅并利用其 Crawling API 进行黄页抓取,请按照以下简单步骤操作:

  1. 访问 Crawlbase 平台: 前往 爬虫库 平台通过访问他们的网站。
  2. 创建一个帐户: 注册 对于 Crawlbase 帐户。此过程通常涉及提供有效的电子邮件地址和创建安全密码。
  3. 探索计划(如果适用):根据您的要求,探索 Crawlbase 上的可用计划。选择一个与您的黄页抓取项目的规模和范围相符的计划。前 1000 个请求免费。无需卡。
  4. 检索您的 API 令牌: 你可以在你的 账户文件。此字母数字字符串对于验证您对爬网 API 的请求至关重要。

快速注意:Crawlbase 提供两种类型的令牌 - 一种是为静态网站量身定制的,另一种是为动态或 JavaScript 驱动的网站设计的。由于我们的重点是抓取黄页,因此我们将使用普通令牌。

使用 Crawlbase 库与 Crawling API 接口

基于 Python 的 Crawlbase 库无缝地支持与 API 的交互,轻松地将其集成到您的黄页抓取工作中。以下代码片段说明了通过 Crawlbase Python 库初始化和使用 Crawling API 的过程。

1
2
3
4
5
6
7
8
9
10
11
12
13
 爬行基地 进口 抓取API

API_TOKEN = 'YOUR_CRAWLBASE_TOKEN'
爬行 API = 爬行 API({'令牌':API_TOKEN})

网址= “https://www.example.com/”
响应=crawling_api.get(url)

if 回复[“标题”]['pc_status'] == '200':
html_内容=响应['身体']。解码('utf-8')
打印(html_内容)
其他:
打印(f"无法获取页面。Crawlbase 状态代码: {回复[“标题”]['pc_status']}")

有关 Crawling API 的深入信息,请参阅 Crawlbase 平台上提供的综合文档。访问它 点击此处。要进一步深入了解 Crawlbase Python 库的功能并探索其他使用示例,请查看文档 点击此处.

从黄页中提取商业信息

将 Crawlbase 库集成到您的 Python 项目中,并使用您唯一的 API 令牌对其进行初始化。这确保了对爬网 API 的安全且经过身份验证的访问。

让我们通过引入 Crawling API 来增强我们的通用脚本。

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
72
73
74
 爬行基地 进口 抓取API
urllib.parse 进口 网址
bs4 进口 美丽汤
进口 JSON

DEF 构造网址(查询、位置):
基本网址 = “https://www.yellowpages.com/search?”
参数= {“搜索词”: 询问, “地理位置条款”: 地点}
回报 base_url + urlencode(参数)

DEF 获取html(API、网址):
响应 = api.get(url)

if 回复[“标题”]['pc_status'] == '200':
回报 回复['身体']。解码('utf-8')
其他:
打印(f"无法获取页面。Crawlbase 状态代码: {回复[“标题”]['pc_status']}")
回报 不包含

DEF 提取详细信息(html_内容):
抓取数据 = []

汤 = BeautifulSoup(html_content, 'html.parser')

结果=汤.select('div#main-content div.search-results.organic div.result')

导致 in 结果:
# 提取重要的详细信息,例如公司名称、联系信息、地址等。
业务名称 = 结果.find('一种', 类_='企业名称')
contact_info = 结果.find('div', 类_='电话')
地址 = 结果.find('div', 类_='地址')
业务类别 = 结果.find('div', 类_=“类别”)
评分 = 结果.find('div', 类_=“结果评级”)
评论计数 = 结果.find('跨度', 类_='数数')
年数业务 = 结果.select_one('div.badges div.years-with-yp > div.count 强')
website_url = 结果.find('一种', 类_=“跟踪访问网站”)

结果详细信息 = {
「企业名称」: 业务名称.text.strip() if 企业名称 其他 不包含,
“联系信息”: contact_info.text.strip() if 联系信息 其他 不包含,
“地址”: 地址.text.strip() if 地址 其他 不包含,
「业务类别」:business_categories.text.strip() if 业务_类别 其他 不包含,
「收视率」: ''.join(评级.get('班级', []))。代替(“结果评级”, '').strip().replace('', '&') if 评分 其他 不包含,
“评论数”:reviews_count.text.strip() if 评论数 其他 不包含,
《从业多年》:year_in_business.text.strip() if 经营年数 其他 不包含,
“网址”: 网站_url.get('href')。条() if 网址 其他 不包含
}
scraped_data.append(结果详细信息)

回报 抓取的数据

DEF ():
API_TOKEN = 'YOUR_CRAWLBASE_TOKEN'
爬行 API = 爬行 API({'令牌':API_TOKEN})

# 搜索查询和位置示例
搜索查询= “信息技术”
位置= “加利福尼亚州洛杉矶”

# 使用搜索词和位置构建 URL
search_url=construct_url(search_query, 位置)

# 使用 Crawlbase Crawling API 从 YellowPages SERP 获取 HTML 内容
html_content = fetch_html(crawling_api, search_url)

if html_内容:
# 从 HTML 内容中提取重要细节
结果详细信息=提取详细信息(html_内容)
打印(json.dumps(结果详细信息,缩进=2))
其他:
打印(“由于 HTML 检索失败而退出。”)

if __名字__ == “__主要的__”:
主()

此更新的代码集成了用于获取 HTML 内容的 Crawlbase Crawling API,确保可靠且高效的抓取过程。

示例输出:

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
[
{
「企业名称」: “洛杉矶计算机工厂”,
“联系信息”: “(310)277-9799”,
“地址”: “2355 Westwood Blvd洛杉矶,CA 90064”,
「业务类别」: “计算机技术援助和支持服务计算机和设备经销商计算机和计算机设备服务和维修”,
「收视率」: 《四点半》,
“评论数”: “(2)”,
《从业多年》: “12年”,
“网址”: “http://lacomputerworks.com”
},
{
「企业名称」: 《征服桌面》,
“联系信息”: “(213)321-1869”,
“地址”: “洛杉矶,CA 90057”,
「业务类别」: “计算机技术援助和支持服务计算机网络设计和系统计算机系统设计师和顾问”,
「收视率」: ,
“评论数”: ,
《从业多年》: ,
“网址”:
},
{
「企业名称」: “我的电脑工作公司”,
“联系信息”: “(877)221-0118”,
“地址”: ,
「业务类别」: “计算机技术援助和支持服务计算机软件和服务计算机和计算机设备服务和维修”,
「收视率」: 《四点半》,
“评论数”: “(43)”,
《从业多年》: “2年”,
“网址”:
},
{
「企业名称」: “PC 和网络专业人士”,
“联系信息”: “(888)823-7767”,
“地址”: “全部洛杉矶,CA 90045”,
「业务类别」: “计算机技术援助和支持服务计算机电缆和电线安装互联网营销和广告”,
「收视率」: “五”,
“评论数”: “(3)”,
《从业多年》: ,
“网址”:
},
{
「企业名称」: “新时代”,
“联系信息”: “(310)657-8632”,
“地址”: “822 S Robertson Blvd Ste 207洛杉矶,CA 90035”,
「业务类别」: “计算机技术援助和支持服务”,
「收视率」: “一”,
“评论数”: “(1)”,
《从业多年》: ,
“网址”: “http://www.excelclasses.net”
},
..... 更多的
]

管理分页以进行广泛的数据检索

处理分页是从黄页中抓取大量数据的一个重要方面,黄页的结果跨越多个页面。黄页通常在 URL 中使用页面参数来表示不同的结果页面。让我们增强之前的 Python 代码以无缝合并分页:

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
 爬行基地 进口 抓取API
urllib.parse 进口 网址
bs4 进口 美丽汤

DEF 构造网址(查询、位置、页码):
基本网址 = “https://www.yellowpages.com/search?”
参数= {“搜索词”: 询问, “地理位置条款”: 地点, “页”:页码}
回报 base_url + urlencode(参数)

DEF 获取html(API、网址):
# ...(不变)

DEF 提取详细信息(html_内容):
# ...(不变)

DEF scrape_yellow_pages(api、搜索查询、位置、最大页数):
页码 in 范围(1, 最大页数 + 1):
search_url = Construction_url(搜索查询、位置、页码)
html_content = fetch_html(api, search_url)

if html_内容:
结果详细信息=提取详细信息(html_内容)
打印(f"页面详细信息 {页码}:",结果_详细信息)
其他:
打印(f"由于页面上的 HTML 检索失败而退出 {页码}.")

DEF ():
API_TOKEN = 'YOUR_CRAWLBASE_TOKEN'
爬行 API = 爬行 API({'令牌':API_TOKEN})

# 示例搜索查询、位置和要抓取的最大页面数
搜索查询= “信息技术”
位置= “加利福尼亚州洛杉矶”
最大页数 = 5 # 根据需要调整要抓取的页面数

# 抓取带有分页的黄页
scrape_yellow_pages(crawling_api,search_query,位置,max_pages)

if __名字__ == “__主要的__”:
主()

这个增强的脚本引入了 page 构造的 URL 中的参数,可以从黄页上的多个页面无缝检索数据。调整 max_pages 根据您对广泛数据检索的要求而定的变量。

最后的思考

由于 Crawlbase 抓取 API 的高效性,抓取黄页数据现在已成为一个简化的过程。通过消除与网络抓取相关的常见挑战(例如 IP 块和验证码),Crawlbase 可确保流畅可靠的体验。使用 Crawlbase 简化您的数据提取过程,并释放黄页抓取的全部潜力。

以下是您可能感兴趣的更多指南:

如何抓取 Yelp
如何抓取 Expedia
如何从 Zillow 抓取房地产数据
如何从 BloomBerg 中提取新闻文章
如何抓取 Stackoverflow 问题

如果您遇到障碍或寻求进一步指导, Crawlbase支持团队 已准备好提供协助。 您在网络抓取方面的成功是我们的首要任务,我们期待在您的抓取之旅中为您提供支持。

常见问题解答(FAQ)

抓取黄页数据的法律方面取决于网站的服务条款。在进行抓取活动之前,彻底审查并遵守黄页的条款和条件至关重要。始终优先考虑遵守法律和道德标准,以避免潜在的法律后果。

问:抓取黄页时如何防止 IP 阻塞?

为了降低黄页抓取过程中 IP 封锁的风险,采用有效的策略至关重要。技术如 轮换IP地址 在请求之间引入随机延迟会有所帮助。 Crawlbase Crawling API 提供高级功能,例如 IP轮换,减少被阻止的可能性并确保更顺畅的抓取体验。

问:黄页是否实施验证码等反抓取措施?

是的,黄页可能会采用反抓取措施(包括验证码)来保护其数据。当使用常见的抓取方法时,可能会遇到验证码。然而,Crawlbase Crawling API 能够无缝应对此类挑战,提供有效的解决方案,最大限度地减少人工干预并确保可靠的数据提取。

问:我可以使用 Crawlbase 抓取 API 大规模抓取黄页数据吗?

当然,Crawlbase Crawling API 是专门为 可扩展的网络抓取。它包括分页处理、异步爬行和 IP 轮换等功能,非常适合从黄页和其他网站提取大量数据。即使在处理大型数据集时,这种可扩展性也能确保效率和可靠性。

问:如何将黄页中的数据提取到 Excel?

使用 Crawlbase 的 Crawling API 从黄页中提取数据并将其保存到 Excel 是一个简单的过程。按着这些次序:

  1. 数据提取:使用爬网 API 从黄页检索数据,确保您获得必要的信息。
  2. 格式化数据:将提取的数据组织成合适的结构。例如,您可能有一个字典列表,其中每个字典代表企业的详细信息。
  3. 导出到Excel:利用 pandas 等 Python 库将结构化数据转换为 Excel 友好的格式。 Pandas 提供了像 to_excel 这样的函数来简化这个过程。
1
2
3
4
5
进口 大熊猫 as pd

# 假设“数据”是你的结构化数据
数据 df = pd.DataFrame(数据)
df.to_excel('yellow_pages_data.xlsx', 索引=)
  1. Excel文件:上面的代码创建了一个名为的Excel文件 yellow_pages_data.xlsx 包含您提取的数据。

请记住,这是一个简化的示例,可能需要根据您的具体数据结构和要求进行调整。关键是利用 Python 库来有效处理数据提取和 Excel 格式化过程。