基本信息
项目指引说明(任务模块、爬虫/代码/部署相关、对外测试运维说明等)
股权穿透爬虫(QCC)
equity_penetration_qcc,通过scrapy部署
项目名称:project-gravel
分支:develop_equity_penetration
非登录爬虫
带登录爬虫
对外测试流的带登录爬虫: qcc/tyc
500家测试 以下统称为"对外测试"
搜索关键词的优先级
对应代码指引 函数
get_search_key
task_result特别说明
task_result=1101, 表示没有,结合data_type情况使用,下列举例
- 列表类型: 列表没有结果,表示没有出公司fid/个人pid
list_region
list_search
- 通过html清洗的类型: 清洗不出结果,表示fid/pid没有出该维度的结果
- qcc:
detail_company
final_beneficiary(暂时)
- tyc:
detail_person
final_beneficiary
detail_company
- 响应返回json格式类型: 响应不出结果,表示fid/pid没有该维度结果
- qcc:
detail_company_apph5
detail_person
actual_controller
- tyc:
actual_controller
其他task_result值按说明,对应指引
数据名称(中文)
股权穿透爬虫(QCC)
数据英文名称
equity_penetration_qcc
equity_penetration_qcc_login
equity_penetration_qcc_test
equity_penetration_tyc_test
采集网站(采集入口)
- 常规
官网PC端入口:
https://www.qcc.com
采集文件存放路径:
/data/gravel_spiders/equity_penetration_qcc
/data/gravel_spiders/equity_penetration_qcc_login
- 对外测试
官网PC端入口:
https://www.qcc.com
https://www.tianyancha.com
采集文件存放路径:
/data/gravel_spiders/equity_penetration_qcc_test
/data/gravel_spiders/equity_penetration_tyc_test
采集频率及采集策略
存量更新策略
目前全量更新一轮地域与公司遍历
增量采集策略
kafka消费topic<qcc_spider_from_lake_ic_new_list>: 工商变更: 包括企业更新与新增企业
根据策略,新增企业需要延后约一周后采集
爬虫
责任人
蒋家升
spider_name爬虫名称
equity_penetration_qcc
equity_penetration_qcc_login (登录)
equity_penetration_qcc_test (对外测试)
equity_penetration_tyc_test (对外测试)
代码地址
项目地址: http://tech.pingansec.com/granite/project-gravel/-/tree/develop_equity_penetration
队列名称及队列地址
- redis host: redis://:utn@0818@bdp-mq-001.redis.rds.aliyuncs.com:6379/7
- redis port: 6379
- redis db: 7
- redis key:
- qcc
- qcc_login
- qcc_test
- tyc_test
优先级队列说明
- equity_penetration 支持队列优先级
任务来源
参考 任务管理模块说明
任务输入参数(样例)
无登录爬虫, redis_key: qcc
# 地域列表任务
{"area_code": "AH_340100", "page": "1"}
# 搜索列表任务
{"search_key": "北京出国邦出入境服务有限公司"}
# 公司详情页信息
{"fid": "0727d5d1a4f95d791ff4b7ce5d6e975a"}
带登录爬虫, redis_key: qcc_login
# 搜索列表任务
{"search_key": "北京出国邦出入境服务有限公司"}
# 公司详情页信息
{"fid": "0727d5d1a4f95d791ff4b7ce5d6e975a"}
# 个人详情页信息
{"pid": "p507f1693d86036364ec3b5b4d3c0639"}
任务样例
task_params任务参数说明
! metadata与task_params兼容问题,信息/附加信息会分布在两处,需要使用 代码get_full_params
先组合起来使用
通用
- ploy: 在任务处决定爬虫出结果的策略;组合多种策略用英标逗号分隔;指定某策略时在键值对中间加上英标分号
- direct: 列表(搜索/地域等)请求时直接清洗出fid/pid发出后续请求
- login: 发出带登录/cookie请求,需要登录的请求一律必须带上此参数
- vip: 目前已预设vip值指定到某一账号
- pc: 发出pc端公司详情请求
- actual_controller: 发出实际控制人接口请求,需结合登录vip
login:vip
- source: 任务来源,sql/es/ic_establish/ic_change等,根据实际情况使用
- stock: 最新公示: 当pc源时,有该参数才会出最新公示结果
附加信息
- 常规
- company_name: 同search_key,因任务源不同字段名称不同,不会与search_key同时出现
full_params.get('search_key') or full_params.get('company_name')
- company_code: 四要素之一,
- credit_no: 四要素之一,
- company_name_digest: 四要素之一,清洗辅助作用
- company_major_type: 企业类型,供统计
- n_company_status: 企业状态,供统计
- ic相关
- change_date: 变更时间
- establish_date: 新增时间
- 对外测试
- batch_date
- batch_sequence_num
- name: 法人名称
列表
- 地域
- area_code: 省份/市区编码,例如:安徽(AH); 合肥(AH_340100)
- page: 页码
- 搜索
- search_key: 搜索框输入内容,同company_name,因任务源不同字段名称不同,不会与company_name同时出现
详情
- fid: QCC企业id
- pid: QCC个人id
data_type说明
- list_region: 地域列表
- list_search: 搜索列表
- detail_company: 公司详情页信息
- detail_company_apph5: 公司详情页信息(无登录状态)
- detail_person: 个人详情页信息
- actual_controller: 实际控制人数据
- final_beneficiary: 最终受益人数据
爬虫结果的超级数据
同以下实际爬虫结果
实际爬虫结果的数据结构
注意:
example结果在新功能上线后可能会未及时更新,需与功能上线时间与example的spider_start_time对比查看可用与否,如遇到example使用出错时适当提醒一下
关于所谓约定
的说明
列表任务结果
分为地域列表,搜索列表,详见data_type说明
对外测试 (链接对应目录下已存多个维度样例结果)
爬虫运行环境
scrapy
爬虫部署信息
target: node_43,node_42,node_32,node_33,node_29,node_28
project: equity_penetration
spider_name: equity_penetration_qcc,equity_penetration_qcc_login,equity_penetration_qcc_test,equity_penetration_tyc_test
常规部署
- 部署机器: 堡垒机 10.8.6.27
- 部署命令 运行每,目录
cd /home/collie/deploy_spider
- 部署
python3 spider_admin.py --spider_name equity_penetration_qcc -n equity_penetration_qcc -s deploy -r true
- 查看
python3 spider_admin.py --spider_name equity_penetration_qcc -n equity_penetration_qcc -s list
- 增加/启动
python3 spider_admin.py --spider_name equity_penetration_qcc -n equity_penetration_qcc -s start -m 250
- 减少/停止
python3 spider_admin.py --spider_name equity_penetration_qcc -n equity_penetration_qcc -s stop -m 500
- 部署
Taskhub地址
任务提交
提交任务地址: http://10.8.6.222:8526/task/
注意:# REMARK(2022-06-07): 由于当前是用的是qcc_retry的outbound, 即重试队列,优先度很低而且会积压;
任务提交示例:
- 通过三要素搜索入口(search_key与ploy[direct,pc])
curl -L -X POST 'http://10.8.6.222:8526/task/' -H 'Content-Type: application/json' --data-raw '{"spider_name": "equity_penetration_qcc","province": "SAX","company_status": "废止","search_key": "乐东黎族自治县第二小学","credit_no": "12468843428892871M","submit_time": "2021-06-16 19:29:44","company_major_type": 4, "ploy": "direct,pc"}'
- 通过fid直接入口
curl -L -X POST 'http://10.8.6.222:8526/task/' -H 'Content-Type: application/json' --data-raw '{"fid": "971414325d72faaa1be487d9eb8d668d", "company_name": "王府井集团股份有限公司", "ploy": "pc", "source": "stock,latest,history_name"}'
相当于task_params再加入spider_name
spider_name与ploy与source能组合出多种结果,具体参考对应条目
Taskhub调度规则说明
task_result=1000 # 正常获取到详情任务
task_result=1101 # 无结果信息
task_result=9101 # 超时错误,需要进行重试,目前重试5次
task_result=8000 # 参数错误
爬虫监控指标设计
(先观察,待补充)
索引:
监控频率:
监控起止时间:
报警条件:
报警群:
报警内容:
数据归集
责任人
数据归集方式
-
爬虫直接写kafka
-
[ x ] 爬虫写文件logstash采集
爬虫结果目录
采集文件存放路径:
/data/gravel_spiders/equity_penetration_qcc
/data/gravel_spiders/equity_penetration_qcc_login
/data/gravel_spiders/equity_penetration_qcc_test
/data/gravel_spiders/equity_penetration_tyc_test
归集后存放目录
/data2_227/grvael_spider_result/equity_penetration_qcc
/data2_227/grvael_spider_result/equity_penetration_qcc_login
logstash配置文件名称
logstash文件采集type
equity_penetration_qcc
equity_penetration_qcc_login
数据归集的topic
qcc_spider
备注:分区数36
ES日志索引及筛选条件
gravel-spider-data-*
监控指标看板
数据保留策略
数据清洗
直接使用topic清洗数据时的group
qcc_spider_etl
责任人
王鹏举
包含清洗、融合、聚合
代码地址
部署地址
10.8.6.18
部署方法及说明
- crontab + data_pump
- supervisor + data_pump
- supervisor + consumer
数据接收来源
group: qcc_spider_etl
数据存储表地址
- 数据库地址:bdp-icpm.rwlb.rds.aliyuncs.com
- 库名:bdp_ic_qcc