哈喽兄弟们,今天来实现一下建筑市场公共服务平台的数据采集,顺便实现一下网站的JS解密。
话不多说,我们直接开始今天的内容。
首先我们需要准备这些
环境使用
- Python 3.8
- Pycharm
模块使用
- requests --> pip install requests
- execjs --> pip install PyExecJS
- json
爬虫基本流程思路
一. 数据来源分析
1. 明确需求: 明确采集的网站以及数据内容
- 网址: https://****.gov.cn/data/company
- 数据: 企业信息
初学者同学: 浏览器导航栏上面链接是什么, 请求什么链接
2. 抓包分析: 通过浏览器去分析, 我们需要数据具体在那个链接中
- 静态网页: 刷新网页查看数据包内
- 动态网页: 点击到下一页数据内容 / 下滑到下一页的数据内容
* 打开开发者工具: F12
* 点击第二页数据内容
加密数据: https:/******.gov.cn/APi/webApi/dataservice/query/comp/list?pg=1&pgsz=15&total=450
二. 代码实现步骤
1. 发送请求 -> 模拟浏览器对于url地址发送请求
url地址: 通过抓包分析找到链接地址
2. 获取数据 -> 获取服务器返回响应数据
开发者工具: response 响应
3. 解析数据 -> 获取加密数据内容
4. 保存数据 -> 通过解密, 还原明文数据 保存表格文件中
爬虫部分代码
# 导入数据请求模块
import requests
# 导入模块
import execjs
# 导入json模块
import json
# 导入csv模块
import csv
# 创建文件对象
csv_file = open('data.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(csv_file, fieldnames=[
'企业名称',
'统一社会信用代码',
'法人',
'注册属地省份',
'注册属地城市',
])
csv_writer.writeheader()
# 模拟浏览器
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}
for page in range(30):
# 请求链接
url = f'https://****网址都屏蔽了**不然你看不到这篇文章***.cn/APi/webApi/dataservice/query/comp/list?pg={