0基础,怎么做个Python爬虫框架?
Posted 千锋深圳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0基础,怎么做个Python爬虫框架?相关的知识,希望对你有一定的参考价值。
Tips:预约千锋免费试听课程,点击文末“阅读原文”进行报名!
![0基础,怎么做个Python爬虫框架?](https://image.cha138.com/20210406/5ff96ab16d7d4b9fb8e37c77101f1e15.jpg)
![0基础,怎么做个Python爬虫框架?](https://image.cha138.com/20210406/330a533bf8e24a9c80207495ba0db3d6.jpg)
-
抓取国内某融资平台网站的全部创业公司信息超过10万条 -
抓取国内某科技类新闻网站的全部新闻数据7万条左右 -
抓取某猎头公司的全部内部数据几十万条左右(数据是什么你应该懂,一直没公开) -
抓取国内四大主流手机应用市场的全部信息,并以天为单位进行更新,每天20万条左右 -
抓取新浪微博、搜狗微信公众号等数据,几百万量级 -
抓取中国裁判文书网上的法律判决文书,1000万条左右 -
抓取教育类APP的题库数据,包括题目、答案、解析,20万条左右 -
还抓取过很多小网站、小应用,这里就不一一列举了
![0基础,怎么做个Python爬虫框架?](https://image.cha138.com/20210406/4a729dd63a5d41038bee0c9335b05ec7.jpg)
utilities模块:主要定义了一些工具函数、工具类等,即抽象出爬虫工作中的具体流程、通用流程等做成函数或者类,目的是为了节省爬虫工程师的时间。比如定义UrlFilter类用于过滤Url,定义params_chack装饰器用于检查函数输入参数等。该模块中的函数较多,大概有15个左右,具体可以去代码中查看,函数命名都比较规范,注释也都还算详细。
instances模块:主要定义了Fetcher、Parser、Saver三个工作类,即爬虫在工作过程中真正干活的流程。如果把爬虫框架比作一个工厂,则concurrent模块定义多个车间并做相应的调度、信息同步等,instances模块定义每个车间中工人的工作流程,utilities模块定义一些生产过程需要的工具、机器等。使用框架时,一般都需要继承并改写上边的三个类,特别是Parser类,即三者都需要定制化,框架在这一步还做不到完全通用。Fetcher类根据url进行简单的抓取,并返回抓取内容。Parser类根据抓取内容进行解析,生成待保存的Item及待抓取的Url列表。Saver类进行Item的保存。(具体可查看上文中的流程图)。另外,三者都不需要改写每个类中的work函数,该函数会充分考虑流程中会遇到的问题,并作出最正确的“回应”。
concurrent模块:主要定义了一个线程池,以及一个进程、线程组合池,用于爬虫过程中线程/进程安全合理调度、进程线程之间数据共享同步等。如果解析类比较简单,不太消耗cpu资源,可以使用线程池ThreadPool,它会根据参数生成相应个数的抓取、解析、保存子线程。但是如果解析类比较复杂,是一个cpu密集型任务,由于Python中GIL的问题,如果单纯的使用多线程,可能效率会比较低,这时可以考虑使用ProcessPool,它会在主进程中开启多个抓取线程,而解析过程则放到不同的进程中,提高爬虫抓取、解析的效率。另外,该模块定义了一个监视线程,在爬虫工作过程中不断监视任务状态。
![0基础,怎么做个Python爬虫框架?](https://image.cha138.com/20210406/a5b16280cd8c477498e7092489aa453d.jpg)
![0基础,怎么做个Python爬虫框架?](https://image.cha138.com/20210406/0979c4bf7ecf494b8a664c1048123c88.jpg)
![形状分割线 0基础,怎么做个Python爬虫框架?](https://image.cha138.com/20210406/5b89c4ec62b94298a10949bbfa61b593.jpg)
千锋深圳Python培训课程内容不断升级,推出最贴近企业实战的机器学习案例,例如人脸识别,手写数字识别,汽车车牌号识别等。
千锋深圳Python培训在做好前期企业调研之后,将潮流技术完美融入课程体系,实用性强,注重理论更重实践,结合项目真实工作流程,进行项目实训!
![0基础,怎么做个Python爬虫框架?](https://image.cha138.com/20210406/6108f30642424db083f54394ca66a3aa.jpg)
另外,如果你对Python技术感兴趣,想掌握过硬的软件测试技术,欢迎来千锋深圳Python培训免费试学2周,课程能不能学到东西,能不能学好学会,亲身体验试学过后自然清楚明了!
充实自己,就现在
来千锋
学最新技术、拿行业最高薪
即学即用,高薪就业不难
扫码客服小姐姐,获取免费学习资料
▼▼▼
千锋深圳校区
千锋教育一直秉承“用良心做教育”的理念,全力打造互联网技术型研发人才服务优质平台。2013年初,千锋深圳IT培训作为千锋教育第一家分公司,强势进驻深圳。校区位于深圳西部硅谷,占地面积4000多平方。在1、4、5、6楼均有教室授课。拥有全国的专业教学以及就业保障团队,做到了毕业学员业内高薪,成为学员信赖的IT培训机构。
以上是关于0基础,怎么做个Python爬虫框架?的主要内容,如果未能解决你的问题,请参考以下文章
小白学 Python 爬虫(40):爬虫框架 Scrapy 入门基础对接 Selenium 实战