天眼数据抓取项目
本项目抓取数据为 公司高管信息以及公司违规处理历史记录
文章目录
项目简介
- 项目说明 :
- 抓取数据:破解登录的滑动验证码和机器人检测 - (机器人检测 还未破解)
- 数据模型转换 爬取的数据字典 转为 数据库映射类的模型
- 入库 存入数据库
- 项目数据库 :
mysql
,当然也可以是其他数据库,只需要更改其config.py
文件中的相关配置。 - 项目源文件介绍:
main.py
- 项目入口文件models.py
- 数据库实体db_helper.py
- 数据库操作根file_helper.py
- 文件操作config.py
- 项目配置geetest2
包 - 来自于github 开源项目 破解天眼的滑动验证码spider.py
- 爬虫程序viewmodel.py
- 继承自db_helper的BaseModel 根
- 项目运行产生的文件介绍:
senior_people.csv
- 公司高管信息(包含所有维度)illegals_data.csv
- 公司违规信息(所有维度)
一、数据库设计
1. 数据库表及字段详解
company(公司表)
字段名称 | 字段类型 | 字段属性 | 字段注解 |
---|---|---|---|
company_id | varchar(20) | 主键 | 公司id |
company_name | varchar(50) | 公司名称 | |
mod_time | datetime | 默认值 写入时间 | 修改时间 |
company_person(公司人员表)
字段名称 | 字段类型 | 字段属性 | 字段注解 |
---|---|---|---|
id | varchar(20) | 主键 | id |
name | varchar(5) | 姓名 | |
age | int | 年龄 | |
sex | varchar(1) | 性别 | |
eduaction | varchar(5) | 学历 | |
resume | text | 个人简介 | |
mod_time | datetime | 修改时间 |
executive_group(高管分组表)
字段名称 | 字段类型 | 字段属性 | 字段注解 |
---|---|---|---|
group_id | int | 主键 | 分组id |
group_name | varchar(5) | 分组名称-(董事会,监事会,高管) |
company_executive(高管表)
字段名称 | 字段类型 | 字段属性 | 字段注解 |
---|---|---|---|
id | int | 主键,自增 | 主键id |
company_id | varchar(20) | 外键 | 公司id |
group_id | int | 外键 | 分组id |
person_id | varchar(20) | 外键 | 人员id |
position | varchar(50) | 职称描述 | |
start_date | date | 任职开始日期 | |
end_date | date | 任职结束日期 | |
report_date | date | 公告日期 | |
mod_time | datetime | 默认值-写入时间 | 修改时间 |
salary_table(薪酬表)
字段名称 | 字段类型 | 字段属性 | 字段注解 |
---|---|---|---|
id | int | 主键,自增 | 主键id |
company_id | varchar(20) | 外键 | 公司id |
person_id | varchar(20) | 外键 | 人员id |
money | varchar(10) | 薪资金额 | |
number_of_shares_with_unit | varchar(10) | ||
mod_time | datetime | 默认值-写入时间 | 修改时间 |
company_illegals(公司违规处理表)
字段名称 | 字段类型 | 字段属性 | 字段注解 |
---|---|---|---|
id | int | 主键,自增 | 主键id |
company_id | varchar(20) | 外键 | 违规公司id |
disposer | varchar(50) | 外键 | 处理机构 |
default_type | varchar(10) | 违规类型 | |
illegal_act_withlink | text | 违规详情 | |
punish_type | varchar(10) | 处理类型-(惩罚类型) | |
punish_explain_withlink | text | 处理详情 | |
punish_object | varchar(20) | 被处理对象 | |
announcement_date | date | 公告日期 | |
currency_unit | varchar(10) | 涉及金额 | |
mod_time | datetime | 默认值-(写入时间) | 修改时间 |
2. 数据库E-R图
二、数据抓取
1. 登录 获取cookie
2. 搜索(普通用户只能够访问前5页数据)
- 接口:
https://www.tianyancha.com/search/p{}/key='company_name'
3. 获取公开的董监高数据
- 接口 :
https://www.tianyancha.com/pagination/seniorPeople.xhtml
4. 获取公司违规信息
-
接口:
https://www.tianyancha.com/pagination/corpIllegals.xhtml
违规信息太少了 根据上面的董监高接口猜出来的
三、相关截图
1. 运行截图
2. csv文件截图
3. 数据库截图
四、数据呈现
由于时间问题,这块内容未实现,下面只是一些想法
- 数据展示 : 用现在的数据可视化技术(python 数据分析)(js
echart.js
图表库)比如可以做一个 公司高管薪资水平图表 - 数据挖掘 :处理分析公司的违规信息,做简单的公司风险预测(还没有尝试过)
五、免责声明
本项目仅仅只用与面试(某面试)若用于其他用途,请自行承担相关责任!!
六、源码分享:
源码链接:github