feapder_task

文章介绍了Feapder爬虫框架的使用方法,包括创建项目、生成Task任务爬虫、运行监控、更新任务状态。还提到了通过Docker进行项目部署,以及使用lite-tools模块操作MySQL。作者建议Feapder能增加对MongoDB的支持。
摘要由CSDN通过智能技术生成

声明:本文章所有内容仅供学习使用,无其它任何目的,严禁用于商业用途和非法用途, 否则产生一切后果均与作者无关**

Feapder使用

1.创建项目
feapder create -p scidb 

​ 创建一个scidb的项目文件夹,item里面是存放数据库文件的,spiders存放我们编写的爬虫文件,settings里面可以声明一些常用的数据库例如:Mysql、Mongo、Redis等,settings设置后,爬虫文件中直接导入即可。
在这里插入图片描述

2.创建一个Task任务爬虫
feapder create -s scidb_task_spider
选择TaskSpider

在这里插入图片描述

任务爬虫必须要先创建好待采集的任务表,需要从任务表中获取的待采集的id、状态等。

CREATE TABLE `scidb_worker`  (
  `id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
  `state` int(11) NULL DEFAULT 0,
  `version` varchar(256)  NULL DEFAULT "",
  `search_type` varchar(256)  NULL DEFAULT "",
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `id`(`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Compact;

SET FOREIGN_KEY_CHECKS = 1;

3.运行spider.start_monitor_task() 函数,将待采集种子所需要的字段通过task_keys添加到redis中

在这里插入图片描述

4.根据task_id解析并更新任务表状态

在这里插入图片描述

在这里插入图片描述

4.项目部署

​ 安装docker,下载feaplat包,终端在feaplat-master\feaplat-master路径下输入docker-compose up -d

访问:http://localhost 即可 默认账密:admin / admin

在这里插入图片描述

上传本地编写好的项目,一及一些第三方模块依赖

在这里插入图片描述

如果不想每一个项目都指定一个第三方依赖的话,可以直接自定义指定私有镜像,打开feapder_dockerfile文件

安装自己需要的模块

FROM registry.cn-hangzhou.aliyuncs.com/feapderd/feapder:2.4

# 例如安装依赖
RUN pip3 install pymongo \
    && pip3 install lite-tools \ 
	&& pip3 install jsonpath \ 
	&& pip3 install lxml \ 
	&& pip3 install pymongo \ 
	&& pip3 install pymysql \ 
	&& pip3 install rich \ 
	&& pip3 install loguru \  
	&& pip3 install packaging 

================================================================================================

打包私有镜像
docker build -f feapder_dockerfile -t my_feapder:1.0 .

# 自己随便搞事情,搞完修改下 `.env`文件里的 SPIDER_IMAGE 的值即可 (SPIDER_IMAGE=my_feapder:1.0)

在这里插入图片描述

settings里面可以配置一些输出日志文件、兼容了自动化的一个xhr接口响应拦截、以及封装了mysql的增删改查操作,对我这种sql小白比较友好、一些入库去重和请求去重规则、监控报警、等。

部署效果

在这里插入图片描述

5.mysql顺便推荐下我朋友写的 lite-tools模块

安装直接 pip install lite-tools即可
链接mysql

mysql_science_data = MySql(config=MySqlConfig(database="metadata", host="127.0.0.1", user="root", password="root", port=3306,
                              table_name="geo_data_paper_set_worker"))
# 普通插入 table_name:指定插入的表明
mysql_science_data.insert(item, table_name="datadryad_institution_worker")

封装了批量插入(insert_bath)和批量(update_batch)更新操作,用起来蛮简单效率蛮高的

在这里插入图片描述
关于feapder的使用教程可以直接访问:https://feapder.com/#/,期待博哥兼容下MongoDB也可以作为任务表。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值