上手简单,功能强大的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抓取模板之家的CSS模板
Mar 16 Python
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
老生常谈Python进阶之装饰器
May 11 Python
django中send_mail功能实现详解
Feb 06 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
在VS2017中用C#调用python脚本的实现
Jul 31 Python
django项目中使用手机号登录的实例代码
Aug 15 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
Jan 14 Python
解决Django响应JsonResponse返回json格式数据报错问题
Aug 09 Python
Python unittest生成测试报告过程解析
Sep 08 Python
Python数据模型与Python对象模型的相关总结
Jan 26 Python
pytorch 预训练模型读取修改相关参数的填坑问题
Jun 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
PHP 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
mysql 搜索之简单应用
2007/04/27 PHP
php 清除网页病毒的方法
2008/12/05 PHP
php的大小写敏感问题整理
2011/12/29 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
pandas 选择某几列的方法
2018/07/03 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
Python定时从Mysql提取数据存入Redis的实现
2020/05/03 Python
python中pop()函数的语法与实例
2020/12/01 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
社团成立邀请函
2014/01/08 职场文书
建筑工地标语
2014/06/18 职场文书
企业法人授权委托书
2014/09/25 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书