用Python爬取天眼查企业信息

概述

在这篇文章中,我将教你如何使用Python来爬取天眼查的企业信息。我们将使用Python的网络爬虫库来请求天眼查的网页并解析返回的HTML数据,从中提取我们所需的企业信息。

整体流程

下面是整个爬取天眼查企业信息的流程,我们将使用下面的表格来展示每个步骤的名称以及需要做的事情。

步骤 描述
1. 发送请求 使用Python的网络爬虫库发送GET请求到天眼查的网页
2. 解析HTML 解析返回的HTML数据,从中提取我们所需的企业信息
3. 存储数据 将提取出的企业信息存储到本地文件或数据库中

接下来,我们将详细介绍每个步骤所需要做的事情以及相应的代码。

发送请求

首先,我们需要使用Python的网络爬虫库发送GET请求到天眼查的网页。我们可以使用requests库来发送请求,然后获取网页的HTML数据。

import requests

def get_html(url):
    response = requests.get(url)  # 发送GET请求
    html = response.text  # 获取HTML数据
    return html

在上面的代码中,get_html函数接收一个URL作为参数,并使用requests.get函数发送GET请求。然后,我们使用response.text获取返回的HTML数据,并将其返回。

解析HTML

接下来,我们需要解析返回的HTML数据,从中提取我们所需的企业信息。我们可以使用Python的解析库BeautifulSoup来解析HTML。

from bs4 import BeautifulSoup

def get_company_info(html):
    soup = BeautifulSoup(html, 'html.parser')  # 解析HTML数据
    # 使用CSS选择器提取企业信息
    company_name = soup.select('.header-title-h1')[0].text
    legal_person = soup.select('.humancompany span')[0].text
    registered_capital = soup.select('.humancompany span')[1].text
    # ... 其他企业信息的提取
    return {
        'company_name': company_name,
        'legal_person': legal_person,
        'registered_capital': registered_capital,
        # ... 其他企业信息
    }

在上面的代码中,get_company_info函数接收一个HTML作为参数,并使用BeautifulSoup库来解析HTML数据。然后,我们使用CSS选择器来提取企业信息。在这个例子中,我们通过选择类名为.header-title-h1的元素来获取企业名称,选择类名为.humancompany span的元素来获取法人和注册资本等信息。你可以根据需要选择其他元素来提取更多的企业信息。

存储数据

最后,我们需要将提取出的企业信息存储到本地文件或数据库中。你可以根据自己的需求选择适合的存储方式。下面是一个简单的例子,将企业信息保存到CSV文件中。

import csv

def save_to_csv(data, filename):
    keys = data.keys()
    with open(filename, 'w', newline='', encoding='utf-8') as f:
        writer = csv.DictWriter(f, fieldnames=keys)
        writer.writeheader()
        writer.writerow(data)

在上面的代码中,save_to_csv函数接收一个字典类型的数据和一个文件名作为参数。我们首先使用data.keys()获取字典的键作为CSV文件的表头,然后使用csv.DictWriter来创建一个写入器。接下来,我们打开文件并写入表头和数据。

完整代码

下面是完整的代码示例,包括发送请求、解析HTML和存储数据的功能。

import requests
from bs4 import BeautifulSoup
import csv

def get_html(url):
    response = requests.get(url)  # 发送GET请求
    html = response.text  # 获取HTML数据
    return html

def get_company_info(html):
    soup = BeautifulSoup(html, 'html.parser')  # 解析HTML数据
    # 使用CSS选择器提取企业信息
    company_name = soup.select('.header-title-h1')[0].text
    legal_person = soup.select('.humancompany span')[0].text
    registered