上手简单,功能强大的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之关于类的初步认识
Oct 11 Python
python 打印出所有的对象/模块的属性(实例代码)
Sep 11 Python
Python中防止sql注入的方法详解
Feb 25 Python
Python实现Pig Latin小游戏实例代码
Feb 02 Python
使用python的pandas库读取csv文件保存至mysql数据库
Aug 20 Python
python虚拟环境迁移方法
Jan 03 Python
Python使用pyserial进行串口通信的实例
Jul 02 Python
python plotly绘制直方图实例详解
Jul 22 Python
python异常处理try except过程解析
Feb 03 Python
python 绘制正态曲线的示例
Sep 24 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 Python
用Python的绘图库(matplotlib)绘制小波能量谱
Apr 17 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 chmod 函数与批量修改文件目录权限
2010/05/10 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
JQuery index()方法使用代码
2010/06/02 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
深入解析JavaScript中的arguments对象
2016/06/12 Javascript
简单理解vue中实例属性vm.$els
2016/12/01 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
详解vue2.0模拟后台json数据
2019/05/16 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
django 修改server端口号的方法
2018/05/14 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
使用Python 统计高频字数的方法
2019/01/31 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
python打造爬虫代理池过程解析
2019/08/15 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
如何利用python生成MD5并去重
2020/12/07 Python
Python wordcloud库安装方法总结
2020/12/31 Python
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
五一手机促销方案
2014/03/08 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
2014年法院工作总结
2014/11/24 职场文书
万里长城导游词
2015/01/30 职场文书
管辖权异议上诉状
2015/05/23 职场文书
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android
Java数据结构之堆(优先队列)
2022/05/20 Java/Android
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS