上手简单,功能强大的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编写检测数据库SA用户的方法
Jul 11 Python
初步讲解Python中的元组概念
May 21 Python
python中json格式数据输出的简单实现方法
Oct 31 Python
Python模拟脉冲星伪信号频率实例代码
Jan 03 Python
Python实现手写一个类似django的web框架示例
Jul 20 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
Nov 30 Python
Python文件如何引入?详解引入Python文件步骤
Dec 10 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
May 15 Python
matplotlib实现显示伪彩色图像及色度条
Dec 07 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
Feb 15 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
Feb 22 Python
Python制作一个随机抽奖小工具的实现
Jul 07 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版微信返回用户text输入的方法
2016/11/14 PHP
php ajax数据传输和响应方法
2018/08/21 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
jquery插件之easing使用
2010/08/19 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
Vue2 模板template的四种写法总结
2018/02/23 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
JavaScript中跨域问题的深入理解
2021/03/04 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
详解用python计算阶乘的几种方法
2019/08/14 Python
解决Django no such table: django_session的问题
2020/04/07 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
管理学专业个人求职信范文
2013/09/21 职场文书
汇报材料怎么写
2014/12/30 职场文书
Go语言-为什么返回值为接口类型,却返回结构体
2021/04/24 Golang
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
Python使用openpyxl批量处理数据
2021/06/23 Python
Python+Appium自动化测试的实战
2021/06/30 Python
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript