上手简单,功能强大的Python爬虫框架——feapder


Posted in Python onApril 27, 2021

简介

feapder 是一款上手简单,功能强大的Python爬虫框架,使用方式类似scrapy,方便由scrapy框架切换过来,框架内置3种爬虫:

  • AirSpider爬虫比较轻量,学习成本低。面对一些数据量较少,无需断点续爬,无需分布式采集的需求,可采用此爬虫。
  • Spider是一款基于redis的分布式爬虫,适用于海量数据采集,支持断点续爬、爬虫报警、数据自动入库等功能
  • BatchSpider是一款分布式批次爬虫,对于需要周期性采集的数据,优先考虑使用本爬虫。

feapder除了支持断点续爬、数据防丢、监控报警外,还支持浏览器渲染下载,自定义入库pipeline,方便对接其他数据库(默认数据库为Mysql,数据可自动入库,无需编写pipeline)

读音: [ˈfiːpdə]

环境要求:

  • Python 3.6.0+
  • Works on Linux, Windows, macOS

安装

From PyPi:

通用版

pip3 install feapder

完整版:

pip3 install feapder[all]

通用版与完整版区别:

完整版支持基于内存去重

完整版可能会安装出错,若安装出错,请参考安装问题

小试一下

创建爬虫

feapder create -s first_spider

创建后的爬虫代码如下:

import feapder


class FirstSpider(feapder.AirSpider):
    def start_requests(self):
        yield feapder.Request("https://www.baidu.com")

    def parse(self, request, response):
        print(response)


if __name__ == "__main__":
    FirstSpider().start()

直接运行,打印如下:

Thread-2|2021-02-09 14:55:11,373|request.py|get_response|line:283|DEBUG|
                -------------- FirstSpider.parse request for ----------------
                url  = https://www.baidu.com
                method = GET
                body = {'timeout': 22, 'stream': True, 'verify': False, 'headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36'}}

<Response [200]>
Thread-2|2021-02-09 14:55:11,610|parser_control.py|run|line:415|DEBUG| parser 等待任务 ...
FirstSpider|2021-02-09 14:55:14,620|air_spider.py|run|line:80|INFO| 无任务,爬虫结束

代码解释如下:

  • start_requests: 生产任务
  • parse: 解析数据

将请求头转为json格式

爬虫采集中,我们经常需要携带网站的header等参数,比如:我们在浏览器检查工具看到某请求头为:

Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: max-age=0
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36

如果我们想在发请求时携带这个header,那么需要手动将其转为json格式。

使用

输入命令,回车

> feapder create -j
请输入需要转换的内容:(xxx:xxx格式,支持多行)

上手简单,功能强大的Python爬虫框架——feapder

输出如下:

上手简单,功能强大的Python爬虫框架——feapder

另外,feapder还支持创建有序字典,方便对比参数前后的变化

命令为:

feapder create -sj

以上就是上手简单,功能强大的Python爬虫框架——feapder的详细内容,更多关于Python 爬虫框架feapder的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python时间戳与时间字符串互相转换实例代码
Nov 28 Python
python的Template使用指南
Sep 11 Python
Python管理Windows服务小脚本
Mar 12 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
python logging日志模块原理及操作解析
Oct 12 Python
Django后台管理系统的图文使用教学
Jan 20 Python
Python3 Click模块的使用方法详解
Feb 12 Python
Python 实现向word(docx)中输出
Feb 13 Python
Pycharm生成可执行文件.exe的实现方法
Jun 02 Python
pycharm软件实现设置自动保存操作
Jun 08 Python
python3中布局背景颜色代码分析
Dec 01 Python
一文搞懂python异常处理、模块与包
Jun 26 Python
python绘制箱型图
基于Python实现的购物商城管理系统
Apr 27 #Python
详解用Python把PDF转为Word方法总结
python实现的web监控系统
python opencv人脸识别考勤系统的完整源码
Apr 26 #Python
python实现监听键盘
Apr 26 #Python
python如何做代码性能分析
Apr 26 #Python
You might like
php实现对象克隆的方法
2015/06/20 PHP
针对PHP开发安全问题的相关总结
2019/03/22 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
JavaScript 函数调用规则
2009/09/14 Javascript
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
详解Python中的join()函数的用法
2015/04/07 Python
使用Python的PEAK来适配协议的教程
2015/04/14 Python
python获取指定目录下所有文件名列表的方法
2015/05/20 Python
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
python中logging包的使用总结
2018/02/28 Python
python地震数据可视化详解
2019/06/18 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
python计算导数并绘图的实例
2020/02/29 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
Python内置函数locals和globals对比
2020/04/28 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
如何在pycharm中安装第三方包
2020/10/27 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
运动会广播稿150字
2014/02/19 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
三问三解心得体会
2014/09/05 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
分享7个 Python 实战项目练习
2022/03/03 Python
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB