上手简单,功能强大的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的词法分析与语法分析
May 18 Python
python调用windows api锁定计算机示例
Apr 17 Python
python抓取网页图片示例(python爬虫)
Apr 27 Python
python让图片按照exif信息里的创建时间进行排序的方法
Mar 16 Python
极简的Python入门指引
Apr 01 Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 Python
Django框架用户注销功能实现方法分析
May 28 Python
Python代码太长换行的实现
Jul 05 Python
django重新生成数据库中的某张表方法
Aug 28 Python
Python实现搜索算法的实例代码
Jan 02 Python
Python实现ElGamal加密算法的示例代码
Jun 19 Python
Python-openCV开运算实例
Jul 05 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
CI映射(加载)数据到view层的方法
2016/03/28 PHP
PHP简单创建压缩图的方法
2016/08/24 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
jQuery 跨域访问问题解决方法
2009/12/02 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
setTimeout自动触发一个js的方法
2014/01/15 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
vue基于better-scroll仿京东分类列表
2020/06/30 Javascript
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
python进阶教程之词典、字典、dict
2014/08/29 Python
使用基于Python的Tornado框架的HTTP客户端的教程
2015/04/24 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
PyCharm代码格式调整方法
2018/05/23 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
python读取指定字节长度的文本方法
2019/08/27 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
用python进行视频剪辑
2020/11/02 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
环保专业大学生职业规划设计
2014/01/10 职场文书
公司员工活动策划方案
2014/08/20 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫