首发于 文本挖掘与个性化推荐
技术篇:Python爬虫介绍

技术篇:Python爬虫介绍

首次看本专栏文章的小伙建议先看一下介绍专栏结构的这篇文章: 专栏文章分类及各类内容简介。


爬虫是一段自动抓取互联网信息的程序。互联网由各种各样的网页构成,每一个网页都对应对应着url,url页面上又有很多指向其他的页面url,url之间相互的指向关系形成一个网状,这就是互联网。正常情况下,我们使用人工的方式从互联网上获取我们所需要的、有价值的、感兴趣的东西,这种方式的特点就是覆盖面比较小。爬虫方法根据设定的主题和感兴趣的目标可以自动的从互联网上获取我们所需要的数据,爬虫从一个url出发,访问它所关联的所有url,并且从每一个页面上获取提取所需要有价值的数据。爬虫就是自动访问互联网并且提取数据的程序。


该篇文章与专栏主题的关系

在机器学习、数据挖掘领域,爬虫技术主要用于收集数据。爬虫获取的数据可以认为是“未经加工的数据集”,在对这些“生数据”进行处理后,便可以获得用来直接进行训练的“训练集”、进行算法性能测试的“测试集”等。所以了解爬虫技术、学会使用爬虫技术爬取数据也是机器学习、数据挖掘任何子领域学习者及从业者必须掌握的一项基本技能,不仅仅局限于推荐系统领域。


爬虫技术架构

首先由爬虫调度端来启动、停止、监视爬虫情况,接下来进入循环爬虫过程。循环爬虫的过程主要是URL管理器、页面下载器、网页下载器三者进行信息交互的过程。其中,URL管理器部分主要负责管理将要爬取的URL;页面下载器主要负责将互联网上URL对应的网页下载到本地;网页解析器则通过网页解释器解析、获取你想要的、感兴趣的内容。在后面的内容里会更加详细地介绍这三个部分。

下图为爬虫的架构图:


爬虫过程的顺序图

爬虫过程的时序图可以清晰、直观的展示整个爬虫的过程。具体过程概述如下:首先调度端启动爬虫,询问url管理器是否有要爬取的url。url管理器将要爬取的url返还给调度端,调度端根据获取的url,利用网页下载器下载url对应的页面内容。网页下载器将下载好的内容发给页面解析器来解析,返回解析好的内容和新的url列表,获取所感兴趣的有价值的数据。根据时序图可以直观了解爬虫过程,如下图所示:


爬虫各部分的介绍

1. 爬虫调度器

爬虫调度器负责启动、停止、监视爬虫的情况,是整个爬虫过程的入口


2.URL管理器

URL管理器是用来管理待爬取的URL集合和已爬取的URL集合,使用URL管理器的原因是为了防止重复抓取、循环抓取:有很多网页中可能有相同的url网址,因此如果没有url管理器,可能会出现重复爬取某页面的情况,降低效率;另外一种情况是爬取两个互相关联的页面A、B时,爬取页面A将获得页面B的url,接着爬取页面B又获得了页面A的url这是就发生了循环爬取。而url管理器则可以很好地解决上述两种情况。

那么url管理器主要完成了哪些功能呢?首先url管理器添加了新的url到待爬取集合中,判断了待添加的url是否在容器中、是否有待爬取的url,并且获取待爬取的url,将url从待爬取的url集合移动到已爬取的url集合。下图可以清晰直观地看到url管理器完成的功能:


3. 网页下载器

将互联网上url对应的页面下载到本地的工具。实现的过程如下:下载器将接收到的url传给互联网,互联网返回html文件给下载器,下载器将其保存到本地。实现过程如下图所示:


4. 页面解析器

页面解析器主要完成的是从获取的html网页字符串中取得有价值的感兴趣的数据和新的url列表。实现过程如下图所示:


使用Python语言实现爬虫的实例代码

下面是爬取百度百科python词条相关的1000个页面的数据的示例程序(完整代码请见: 本文爬虫代码):


1.调度端主程序(spider_main.py)


2.url管理器(url_manager.py)


3.下载器(html_downloader.py)


4.解析器(html_paser.py)


5.输出(html_outputer.py)

6.爬取结果截图:


参考资料

  1. Python开发简单爬虫_python爬虫入门教程_python爬虫视频教程-慕课网
  2. 史上最全Python数据分析学习路径图 - OPEN 开发经验库

代开银行存款证明公司抚顺存款证明推荐石家庄定期存单代发忻州办资信证明绵阳银行定期存单开具苏州打资金证明天津出国留学资金证明怎么打亳州代开银行存款证明临沂做资信证明泰安做银行存款证明拉萨银行定期存单查询九江资信证明怎么样沈阳企业资信证明怎么样唐山办企业资信证明安顺资信证明代做沈阳出国留学资金证明模板随州出国留学资金证明订做辽源开出国留学资金证明黄山开具资信证明绥化留学存款证明用途辽阳出国留学资金证明办理怀化企业资信证明订做眉山出国留学资金证明哪里有池州存款证明模板双鸭山出国留学资金证明制作白山银行定期存单作用重庆企业资信证明作用六安资信证明打印德州资金证明公司安顺资信证明图片鄂尔多斯资金证明订做香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声汪小菲曝离婚始末卫健委通报少年有偿捐血浆16次猝死单亲妈妈陷入热恋 14岁儿子报警雅江山火三名扑火人员牺牲系谣言手机成瘾是影响睡眠质量重要因素男子被猫抓伤后确诊“猫抓病”中国拥有亿元资产的家庭达13.3万户高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了男孩8年未见母亲被告知被遗忘张家界的山上“长”满了韩国人?倪萍分享减重40斤方法许家印被限制高消费网友洛杉矶偶遇贾玲何赛飞追着代拍打小米汽车超级工厂正式揭幕男子被流浪猫绊倒 投喂者赔24万沉迷短剧的人就像掉进了杀猪盘特朗普无法缴纳4.54亿美元罚金周杰伦一审败诉网易杨倩无缘巴黎奥运专访95后高颜值猪保姆德国打算提及普京时仅用姓名西双版纳热带植物园回应蜉蝣大爆发七年后宇文玥被薅头发捞上岸房客欠租失踪 房东直发愁“重生之我在北大当嫡校长”校方回应护栏损坏小学生课间坠楼当地回应沈阳致3死车祸车主疑毒驾事业单位女子向同事水杯投不明物质路边卖淀粉肠阿姨主动出示声明书黑马情侣提车了奥巴马现身唐宁街 黑色着装引猜测老人退休金被冒领16年 金额超20万张立群任西安交通大学校长王树国卸任西安交大校长 师生送别西藏招商引资投资者子女可当地高考胖东来员工每周单休无小长假兔狲“狲大娘”因病死亡外国人感慨凌晨的中国很安全恒大被罚41.75亿到底怎么缴考生莫言也上北大硕士复试名单了专家建议不必谈骨泥色变“开封王婆”爆火:促成四五十对测试车高速逃费 小米:已补缴天水麻辣烫把捣辣椒大爷累坏了

代开银行存款证明公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化