python爬取天眼查

引言

在信息时代,获取有效的商业信息对于企业和个人来说至关重要。天眼查是一个提供企业信息查询的网站,用户可以通过输入企业名称或者注册号来获取相关企业的工商信息、股东信息、法律诉讼信息等。然而,手动查询每个企业的信息非常耗时且繁琐。因此,我们可以利用Python编程语言编写一个爬虫程序来自动化这个过程,提高查询效率。

爬取天眼查数据的步骤

第一步:安装必要的库

在开始之前,我们需要安装一些Python库,用于处理HTTP请求和解析HTML页面。下面是安装命令:

pip install requests beautifulsoup4

第二步:发送HTTP请求获取页面内容

天眼查的搜索接口是通过发送HTTP POST请求来实现的。我们可以使用Python的requests库发送这个请求,并获取返回的页面内容。下面是示例代码:

import requests

def search_company(keyword):
    url = '
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
        'Content-Type': 'application/x-www-form-urlencoded',
    }
    data = {
        'key': keyword,
    }
    response = requests.post(url, headers=headers, data=data)
    return response.text

第三步:解析HTML页面提取所需信息

我们可以使用Python的beautifulsoup库来解析HTML页面,并提取我们所需的信息。天眼查的企业信息在一个class为search-item sv-search-company的div标签中。下面是示例代码:

from bs4 import BeautifulSoup

def parse_company(html):
    soup = BeautifulSoup(html, 'html.parser')
    company_list = soup.find_all(class_='search-item sv-search-company')
    companies = []
    for company in company_list:
        name = company.find(class_='name').text
        legal_person = company.find(class_='legalPersonName').text
        registered_capital = company.find(class_='amount').text
        companies.append({
            'name': name,
            'legal_person': legal_person,
            'registered_capital': registered_capital,
        })
    return companies

第四步:保存数据

最后,我们可以将获取到的企业信息保存到文件或者数据库中,以便进一步处理和分析。下面是示例代码:

import csv

def save_to_csv(companies, filename):
    with open(filename, 'w', newline='', encoding='utf-8-sig') as csvfile:
        fieldnames = ['name', 'legal_person', 'registered_capital']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        writer.writeheader()
        writer.writerows(companies)

完整示例

下面是一个完整的示例代码,展示了如何使用上述步骤爬取天眼查数据并保存到CSV文件中:

import requests
from bs4 import BeautifulSoup
import csv

def search_company(keyword):
    url = '
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
        'Content-Type': 'application/x-www-form-urlencoded',
    }
    data = {
        'key': keyword,
    }
    response = requests.post(url, headers=headers, data=data)
    return response.text

def parse_company(html):
    soup = BeautifulSoup(html, 'html.parser')
    company_list = soup.find_all(class_='search-item sv-search-company')
    companies = []
    for company in company_list:
        name = company.find(class_='name').text
        legal_person = company.find(class_='legalPersonName').text
        registered_capital = company.find(class_='amount').text
        companies.append({
            'name': name,
            'legal_person': legal_person,
            'registered_capital': registered_capital,
        })
    return companies

def save_to_csv(companies, filename):
    with open(filename, 'w', newline='', encoding='utf-8-sig') as csvfile:
        fieldnames = ['name', 'legal_person', 'registered_capital']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        writer.writeheader()
        writer.writerows(companies)

def main():
    keyword = input