Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
K
kb
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • granite
  • kb
  • Wiki
    • Data_stream
    • Equity_penetration
  • qcc

Last edited by 蒋家升 Jun 14, 2023
Page history

qcc

基本信息

项目指引说明(任务模块、爬虫/代码/部署相关、对外测试运维说明等)

股权穿透爬虫(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
equity_penetration_tyc

采集网站(采集入口)

  • 常规
官网PC端入口:
https://www.qcc.com
https://www.tianyancha.com

采集文件存放路径:
/data/gravel_spiders/equity_penetration_qcc
/data/gravel_spiders/equity_penetration_qcc_login
/data/gravel_spiders/equity_penetration_tyc
  • 对外测试
官网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 (对外测试)
equity_penetration_tyc

代码地址

项目地址: 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
    • tyc

优先级队列说明

  • 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: 结合fid,发出实际控制人接口请求,需结合登录vip login:vip
    • final_beneficiary: 结合fid,发出最终受益人接口请求,需结合登录vip login:vip
    • sbbdlist: 结合fid,发出上榜榜单接口请求
    • teclist: 结合fid,发出荣誉资质接口请求
    • elib: 发出新成立接口请求
    • oth: 结合pid,发出个人详情pc接口请求
    • m: 结合pid,发出个人详情手机端接口请求
  • 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: 实际控制人数据 (对应ploy: "actual_controller")
  • final_beneficiary: 最终受益人数据 (对应ploy: "final_beneficiary")
  • sbbdlist: 上榜榜单(对应ploy: "sbbdlist")
  • teclist: 荣誉资质 (对应ploy: "teclist")
  • detail_group: 集团详情 (gid必要)
  • list_elib: 新成立 (对应ploy: "elib")
    • list_elib_init: 新成立选择两个区域

爬虫结果的超级数据

同以下实际爬虫结果

实际爬虫结果的数据结构

注意:
example结果在新功能上线后可能会未及时更新,需与功能上线时间与example的spider_start_time对比查看可用与否,如遇到example使用出错时适当提醒一下
关于所谓约定的说明

列表任务结果
分为地域列表,搜索列表,详见data_type说明

公司页详情结果

个人页详情结果

对外测试 (链接对应目录下已存多个维度样例结果)

qcc

tyc

爬虫运行环境

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
    - equity_penetration_tyc

常规部署

  • 部署机器: 堡垒机 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/

注意:用的是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

  • 高优先度示例 taskhub条件查看 outbound[qcc_high_priority_retry]的selector
curl -L -X POST 'http://10.8.6.222:8526/task/' -H 'Content-Type: application/json' --data-raw '{"spider_name": "equity_penetration_qcc","source": "task","task_result": 9204}'

!!!在此基础上加上task_params中需要的任务参数

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
/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

责任人

王鹏举

包含清洗、融合、聚合

详情

代码地址

http://tech.pingansec.com/granite/project-gravel/-/blob/develop_equity_penetration_cleaning/app_equity_penetration/data_pump/qcc_cleaning.yaml

部署地址

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
Clone repository
  • README
  • basic_guidelines
  • basic_guidelines
    • basic_guidelines
    • dev_guide
    • project_build
    • 开发流程
  • best_practice
  • best_practice
    • AlterTable
    • RDS
    • azkaban
    • create_table
    • design
    • elasticsearch
    • elasticsearch
      • ES运维
    • logstash
View All Pages