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