回顾上一期,我们在介绍了爬虫的基本概念之后,就利用各种工具横冲直撞的完成了一个小爬虫,目的就是猛、糙、快,方便初学者上手,建立信心。对于有一定基础的读者,请不要着急,以后我们会学习主流的开源框架,打造出一个强大专业的爬虫系统!不过在此之前,要继续打好基础,本期我们先介绍爬虫的种类,然后选取最典型的通用网络爬虫,为其设计一个迷你框架。有了自己对框架的思考后,再学习复杂的开源框架就有头绪了。
今天我们会把更多的时间用在思考上,而不是一根筋的coding。用80%的时间思考,20%的时间敲键盘,这样更有利于进步。
语言&环境
语言:带足弹药,继续用python开路!
一个迷你框架
下面以比较典型的通用爬虫为例,分析其工程要点,设计并实现一个迷你框架。架构图如下:
代码结构:
config_load.py 配置文件加载
crawl_thread.py 爬取线程
mini_spider.py 主线程
spider.conf 配置文件
url_table.py url队列、url表
urls.txt 种子url集合
webpage_parse.py 网页分析
webpage_save.py 网页存储
看看配置文件里有什么内容:
spider.conf
url_table.py
step 3. 记录哪些网页已经下载过的小本本——url表。
在互联网上,一个网页可能被多个网页中的超链接所指向。这样在遍历互联网这张图的时候,这个网页可能被多次访问到。为了防止一个网页被下载和解析多次,需要一个url表记录哪些网页已经下载过。再遇到这个网页的时候,我们就可以跳过它。
crawl_thread.py
step 5. 页面分析模块
从网页中解析出urls或者其他有用的数据。这个是上期重点介绍的,可以参考之前的代码。
step 6. 页面存储模块
保存页面的模块,目前将文件保存为文件,以后可以扩展出多种存储方式,如mysql,mongodb,hbase等等。
webpage_save.py
写到这里,整个框架已经清晰的呈现在大家眼前了,千万不要小看它,不管多么复杂的框架都是在这些基本要素上扩展出来的。
安全缆绳锁的特点介绍,它的安全系数怎么样
AD1580简介及应用
雷鸟创新消费级真AR眼镜亮相
电场风机远程监控系统的功能实现及应用优势分析
智能手机连接不上WiFi应该如何处理
网络爬虫教程(2):迷你框架设计
万达告别房地产!王健林千万资产转移,李嘉诚卖掉内地物业,这意味房价是要降吗?
适用于3D工作流程的实时数字孪生仿真和协作平台
3D-IC设计之系统级版图原理图一致性检查
自动驾驶行业发展迅速,推动智能网联汽车的发展
飞创直线电机模组负载、速度、行程、使用环境常见问题
爱科技(AKG)K450 头戴式耳机现已在京东开启预售
施耐德电气软硬件一体化的楼宇住宅全行业解决方案赋能绿色发展
常用电气元件文字符号大全
蚂蚁测试用例智能生成技术架构与实践
最新电源模块系列可简化设计加速上市
2015那些走入现实的汽车新科技
OPPO“自研降噪颈挂耳机”采用了4Mic FF+FB双重主动降噪
[图文]由无线收发器组成的多用途报警器
金属化膜电容器的热阻是什么意思