教你如何用 Python 爬取爱企查企业信息
在这个数据驱动的时代,爬虫技术变得越来越重要。今天,我将带你了解如何通过 Python 爬取爱企查上的企业信息。以下是整个流程的概述。
爬取流程
步骤 | 内容描述 |
---|---|
第一步 | 安装所需库 |
第二步 | 发送请求获取网页内容 |
第三步 | 解析HTML内容 |
第四步 | 提取企业信息 |
第五步 | 存储或展示提取的信息 |
第一步:安装所需库
要执行爬虫,我们需要使用一些第三方库,如 requests
和 BeautifulSoup
。打开命令行终端,并输入以下命令:
pip install requests beautifulsoup4
这两条命令分别用来安装 requests
和 BeautifulSoup
库。
第二步:发送请求获取网页内容
使用 requests
库发送 HTTP 请求,并获取网页的 HTML 内容。
import requests
# 设定目标URL
url = '
# 发送请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 获取网页内容
html_content = response.text
print("网页内容获取成功")
else:
print("请求失败,状态码:", response.status_code)
在这段代码中:
- 我们引入了
requests
库。 - 设定了目标 URL。
- 使用
requests.get()
方法发送请求。 - 通过
response.status_code
检查请求是否成功,成功时获取 HTML 内容。
第三步:解析 HTML 内容
一旦我们得到了 HTML 内容,下一步是使用 BeautifulSoup
来解析它。
from bs4 import BeautifulSoup
# 解析HTML内容
soup = BeautifulSoup(html_content, 'html.parser')
# 打印解析后的内容以确保解析成功
print(soup.prettify()[:1000]) # 仅打印前1000个字符
在这段代码中:
- 我们从
bs4
库中引入了BeautifulSoup
类。 - 使用
BeautifulSoup()
创建一个 BeautifulSoup 对象,并将 HTML 内容传入进行解析。 - 使用
.prettify()
方法可以美化输出,便于检查解析是否成功。
第四步:提取企业信息
接下来,我们需要从解析后的 HTML 文件中提取我们需要的信息。假设我们要提取企业名称和网址。
# 假设每个企业信息都在特定的div标签内
companies = soup.find_all('div', class_='company-info')
# 存储提取的企业信息
company_list = []
for company in companies:
name = company.find('h4').text.strip() # 企业名称
link = company.find('a')['href'] # 企业链接
company_list.append({'name': name, 'link': link}) # 将信息存储到列表中
# 打印提取的企业信息
for company in company_list:
print(company)
在这段代码中:
- 通过
soup.find_all()
方法找到所有的企业信息块。 - 在每个企业信息块内,我们提取企业名称和链接。
- 将提取的数据以字典的形式存储在
company_list
列表中。
第五步:存储或展示提取的信息
最后,你可以选择将提取的信息存储到文件中,或者直接在控制台输出。这里我们选择输出。
# 打印所有企业信息
for idx, company in enumerate(company_list, 1):
print(f"{idx}. 企业名称: {company['name']}, 企业链接: {company['link']}")
在这段代码中:
- 我们使用
enumerate()
函数给企业编号,并打印它们的信息。
通过以上步骤,我们基本上完成了用 Python 爬取爱企查企业信息的任务。虽然这个示例比较简单,但它提供了爬取和解析网页的基础框架。希望你能在实践中进一步深入理解这些步骤,并对Python爬虫有更深入的掌握。
总结
在这篇文章中,我们学习了如何使用 Python 实现一个简单的爬虫。我们首先安装了所需的库,然后发送请求来获取网页内容,再解析 HTML,提取所需的信息,最后以易于整合的方式展示结果。希望这些内容能对你有所帮助,祝你在编程的旅程中取得更好的进展!