大概两个月前,我把自己维护的一个“极为简洁”的Python爬虫框架PSpider放在了Github,并在专栏中做了简单介绍:一个极为简洁的Python爬虫框架。没想到两个月的时间,“竟然”收到了超过300的star,让我很意外,所以我也一直在尽量改进这个框架:xianhu/PSpider。
写这个框架的初衷,主要有以下几点:
关于开源作品,有兴趣的可以看一下这个回答:如何在 Github 上做一个规范的开源项目?
如果大家有兴趣可以Fork代码之后仔细读一遍,结合我的一些说明,应该不难理解框架其中的逻辑。当然也很欢迎大家star?。对于协程部分,如果没有协程基础,建议转到:理解Python中的异步IO和协程(Coroutine),并应用在爬虫中
首先说一下PSpider框架的特性和功能:

如果把爬虫框架比作一个工厂,则对于多线程爬虫框架,concurrent模块定义多个车间并做相应的调度、信息同步等,instances模块定义每个车间中工人的工作流程,utilities模块定义一些生产过程需要的工具、机器等。Fetcher类根据url进行简单的抓取,并返回抓取内容。Parser类根据抓取内容进行解析,生成待保存的Item及待抓取的Url列表。Saver类进行Item的保存。(具体可查看上文中的流程图)。
具体的用法,大家可以参考Github上的说明文档。有什么问题,可以随时和我沟通,非常非常欢迎大家根据自己的业务提出需求,甚至提出代码合并请求等。
另外,代码部分有一些demos_*的文件夹,是一些框架使用的demo,包括当当图书信息抓取、豆瓣电影抓取、NBA球员信息抓取等。由于PSpider框架的不断变化,这里不保证每个Demo都还能直接调用,但是应该稍微修改就能使用。如果你希望分享你自己的Demo,也欢迎大家提交Pull Request。

再一次放上爬虫框架代码地址:xianhu/PSpider
=============================================================
作者主页:笑虎(Python爱好者,关注爬虫、数据分析、数据挖掘、数据可视化等)
作者专栏主页:撸代码,学知识 - 知乎专栏
作者GitHub主页:撸代码,学知识 - GitHub
欢迎大家拍砖、提意见。相互交流,共同进步!
==============================================================
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/756/viewspace-3139072/ ,如需转载,请注明出处,否则将追究法律责任。