一、序言
-
随着国内大大小小企业数智化转型不断深入,最大程度地满足业务需求,最佳手段是靠数据决策、智能流程来完成。伴随着 GPT5 横空问世,已是企业长久可持续发展的必然趋势。
-
大量数据信息有哪些渠道呢?除了人工录入,公司内部信息系统的数据资产以外,竞品网站、互补互联网的开放资源其实也是宝贵的数据资产,一定程度在数据决策分析上起着关键作用。
-
因此,为了满足公司运营部需求 —— 要求技术部门利用合理手段抓取市场运营数据来支撑数据决策。
二、选型
基于上述背景,本章节主要向大家介绍下,选择框架的大致思路步骤,希望能给大家一些启示。
2.1 编程语言
选型第一步,需要明确目标,高效抓取并处理数据。基于这个目标,我首先考虑是 python,因为是解释型语言(所见即所得),不管是开发还是调试效率都比较高;其次,python 有较多免费开源类库,针对大数据量处理与清洗有天然优势;最后,python 有较多的爬虫框架,在这方面有绝对优势。因此,编程语言最终选择的是 python。
2.2 选择框架
python 爬虫框架有很多,例如 Beautiful Soup,PySpider,Scrapy 等等,那基于什么标准来选框架呢?
对于我来说,第一步是要明确抓什么样的数据,是纯页面,还是纯接口的,还是页面加接口等,最后了解下来,需要满足多种场景。基于要满足各种场景数据抓取的需求,比对了常用框架 PySpider 和 Scrapy,发现 Srapy 更符合要。Scrapy 是一个“一个比较灵活的,可配置的爬虫”,每个环节都可以高度定制, 比较适用公司级别的数据抓取,而且对应的社区比较活跃,点赞量超过 47K,fork 量超过 10k,这说明这个框架受到了全球开发者的喜爱,对于日后出现任何框架上的问题都有了很好的保障。
第二步,我会去尝试使用上述的框架,去了解框架设计的理念和框架的实用性。基本的入门在这里就不过多赘述了,大家感兴趣可以自行查看下方链接学习。
从理念上来讲 scrapy 追求的是灵活、简单。灵活体现在每一步的配置包括访问或拦截的每个请求都可以按照开发者的意愿去调整优化,其次一些辅助或互补的功能模块也是以插件的形式结合的,解耦做得比较好;而简单体现在框架整体流程比较清晰明确,流程中每个节点原子性做得比较好,各司其职,方便后期快速排查问题,定位问题,其次,针对简单页面抓取值,开发者只需要简单配置下就能完成,让开发者更关注于业务非底层实现。
结合上述两步的验证与考量,最终自己选择了 Scrapy。
三、关联生态
3.1 Scrapyd
使用过 Scrapy 的童鞋都清楚,基于开发者本地开发调试使用 scrapy 命令操作就可以完成。但如果要基于服务来的话,就需要用 Scrapyd 服务来操作。Scrapyd 主要解决了可视化与服务端的问题,主要提供了 Job,Logs 可视化。
具体 Scrapyd 安装与操作希望大家自行翻阅资料,下面就 Scrapyd 常用的命令罗列下:
常用名命令 | 执行命令 | 命令描述 |
---|---|---|
scrapyd | scrapyd | 启动 scrapy 服务 |
scrapyd-deploy | scrapyd-deploy [部署名称] -p [项目名称] | 部署爬虫项目 |
scrapyd-deploy egg | scrapyd-deploy --build-egg output.egg | 生成 egg 文件 |
Scrapyd webapi 的常用命令:
- curl http://localhost:6800/listprojects.json (列出项目)
- curl http://localhost:6800/listspiders.json?project=myspider (列出爬虫)
- curl http://localhost:6800/listjobs.json?project=myspider (列出 job)
- curl http://localhost:6800/cancel.json -d project=myspider -d job=tencent (终止爬虫,该功能会有延时或不能终止爬虫的情况,此时可用 kill -9 杀进程的方式中止)
3.2 SpiderKeeper
根据以往项目经验,SpiderKeeper 也是 Scrapy 的关联生态。SpiderKeeper 主要功能是给 Scrapy 插上定时任务功能的翅膀,但 SpiderKeeper 依附于 Scrapyd 服务,从其启动的命令就能看出来:
$root spiderkeeper --server=http://127.0.0.1:6800
四、总结
最后花一分钟时间跟大家总结下,任何技术选型的前提是理清楚业务需求目标,有了目标才能去选择技术框架,然后对比框架要从理念、性能、可维护、可拓展、关联生态的维度去考量,同时结合项目经验,相信选出的框架肯定不会差,要相信自己是最棒的!
如果你对Python感兴趣的话,可以试试我整理的这份Python全套学习资料,微信扫描下方二维码免费领取
包括:Python永久使用安装包、Python web开发,Python,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!
![](https://i-blog.csdnimg.cn/blog_migrate/f19229ddc4ff762e4c1f8aa86c6227b4.jpeg)
零基础Python学习资源介绍
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python学习软件
工欲善其事,必先利其器。学习Python常用的开发软件都在这里了!
三、Python入门学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
四、Python练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
五、Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。这份资料也包含在内的哈~
六、Python面试资料
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
七、资料领取
上述完整版Python全套学习资料已经上传CSDN官方,需要的小伙伴可自行微信扫描下方CSDN官方认证二维码输入“领取资料”免费领取!!
![](https://i-blog.csdnimg.cn/blog_migrate/f19229ddc4ff762e4c1f8aa86c6227b4.jpeg)