Python3.x网络爬虫从零基础到项目实战

Python3.x网络爬虫从零基础到项目实战
作者: 编者:史卫亚|责编:吴晓月//王继伟
出版社: 北京大学
原售价: 108.00
折扣价: 70.20
折扣购买: Python3.x网络爬虫从零基础到项目实战
ISBN: 9787301312827

作者简介

史卫亚,博士,副教授,IEEE会员,CCF会员,INNS会员。2009年获得复旦大学计算机应用专业博士学位。2015—2016年在美国北卡罗来纳大学做访问学者,对机器学习、大数据检索、数据库、图像和视频处理、人工智能和模式识别等有深入研究。

内容简介

第1章 爬虫基础 互联网上有浩瀚的数据资源,要想爬取这些数据就离不开爬虫。本章学习关于Python爬虫的一些技术内容。 本章重点讲解以下内容。 爬虫的相关概念 Python语法的一些基础知识 网页相关的知识,包括HTML和HTTP 1.1 认识爬虫 网络爬虫又称为网页蜘蛛、网络机器人,通俗来讲,网络爬虫就是一段程序,通过这段程序可以在网站上获取需要的信息,如文字、视频、图片等。此外,网络爬虫还有些不常用的名称,如蚂蚁、自动索引、模拟程序或蠕虫等。 爬虫的设计思路如下。 (1)明确需要爬取的网页的URL地址。 (2)通过HTTP请求来获取对应的HTML页面。 (3)提取HTML中的内容。这里有两种情况:如果是有用的数据,就保存起来;如果是需要继续爬取的页面,就重新指定第(2)步。 为了更方便地理解爬虫,下面介绍大数据时代获取数据的方式。 1.1.1 大数据时代获取数据的方式 随着社会的高速发展,科技发达,信息畅通,人们之间的交流越来越密切,生活也越来越方便,大数据就是这个高科技时代的产物。那么在大数据时代,获取数据的方式有哪些? (1)企业产生的数据:百度搜索指数、腾讯公司业绩数据、阿里巴巴集团财务及运营数据、新浪微博微指数等。 (2)数据平台购买的数据:数据平台包括数据堂、国云数据市场、贵阳大数据交易所等。 (3)政府/机构公开的数据:国家统计局数据、中国人民银行调查统计司统计数据、世界银行公开数据、联合国数据库、纳斯达克综合指数、新浪美股实时行情等。这些数据通常都是由各地政府统计上报,或者由行业内专业的网站、机构等提供。 (4)数据管理咨询公司的数据:麦肯锡、埃森哲、尼尔森、中国互联网络信息中心、艾瑞咨询等数据管理咨询公司,通常拥有庞大的数据团队,一般通过市场调研、问卷调查、固定的样本检测、与各行各业的公司合作、专家对话来获取数据,并根据客户需求制定商业解决方案。 (5)爬取网络数据:如果数据市场上没有需要的数据,或者价格太高不愿意购买,那么可以利用爬虫技术,获取网站上的数据。 第5种方式就是本书要重点介绍的内容。 1.1.2 爬虫的分类 爬虫有很多种类型,根据使用场景的不同,可以将爬虫分为通用爬虫和聚焦爬虫两种。 1. 通用爬虫 随着网络技术的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎的核心就是通用爬虫,例如,传统的通用搜索引擎谷歌、百度等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。 随着网络技术的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎的核心就是通用爬虫,例如,传统的通用搜索引擎谷歌、百度等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。 通用爬虫是搜索引擎爬取系统的重要组成部分,主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。 通用爬虫是从互联网中搜集网页、采集信息。采集的网页信息可以为搜索引擎建立索引提供支持,它决定着整个引擎系统的内容是否丰富,信息是否及时,因此其性能的优劣直接影响着搜索引擎的效果。搜索引擎网络爬虫的基本工作流程如下。 (1)爬取网页。 如图1-1所示,取一部分种子URL,将这些种子放入待爬取URL队列。取出待爬取URL,解析DNS得到主机的IP,并将URL对应的网页下载下来,存储到已下载的网页库中,再将这些URL放入已爬取的URL队列。分析已爬取的URL队列中的URL,分析其中的其他URL,并且将其中需要继续爬取的URL放入待爬取的URL队列,从而进入下一个循环。 图1-1 搜索引擎网络爬虫的基本工作流程 在图1-1中,搜索引擎获取新网站的URL,是输入了一定的规则,如标注为nofollow的链接或Robots协议。 提 示Robots协议也称为爬虫协议、机器人协议等,其全称为网络爬虫排除标准(Robots Exclusion Protocol)。网站通过Robots协议告诉搜索引擎哪些页面可以爬取,哪些页面不能爬取,例如,淘宝网:https://www.taobao.com/robots.txt,腾讯网:http://www.qq.com/robots.txt。 (2)数据存储。 搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是一致的。搜索引擎网络爬虫在爬取页面的同时,也做重复内容检测,一旦遇到访问权重很低的网站上有大量抄袭、采集或复制的内容,就有可能不再继续爬行。 (3)预处理。 搜索引擎将爬虫爬取的页面进行预处理,如提取文字、中文分词、索引处理等。 除HTML文件外,搜索引擎通常还能爬取和索引以文字为基础的多种文件类型,如 PDF、Word、WPS、XLS、PPT、TXT文件等。 (4)提供检索服务,网站排名。 搜索引擎在对信息进行组织和处理后,为用户提供关键字检索服务,将用户检索相关的信息展示给用户。同时会根据页面的PageRank值(链接的访问量排名)来进行网站排名,Rank值高的网站在搜索结果中会排名较前。 通用爬虫虽然功能很强大,但是也存在一定的局限性。 (1)不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。 (2)通用搜索引擎的目标是尽可能地扩大网络覆盖范围,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。 (3)网络技术的不断发展,万维网数据形式越来越丰富,如图片、数据库、音频、视频等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很快地发现和获取。 (4)通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。 2. 聚焦爬虫 为了解决通用爬虫的局限性,定向爬取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的爬取目标,有选择地访问万维网上的网页与相关的链接,获取所需信息。与通用爬虫不同的是,聚焦爬虫并不追求大的覆盖范围,而将目标定为爬取与某一特定主题内容相关的网页,为面向主题的用户查询获取数据资源。 提 示 第2~21章介绍的网络爬虫,就是聚焦爬虫。 ● 案例完整 本书中的所有案例都是通过“理论讲解 + 环境搭建 + 完整代码及分析 + 运行结果”这种完善的结构进行讲解的。此外,复杂的案例配有项目结构图,有难度的案例还分析了底层源码,并且对于所有案例的讲解,都考虑到了读者可能会遇到的各种问题。 ● 案例经典实用 本书中的案例大多是由真实项目简化而来的,既体现了所述知识点的精华,又屏蔽了无关技术的干扰。此外,本书在案例讲解时,也充分考量了相关知识的各种实际应用场景,将同一个技术在多个场景下的不同角色都做了充分的讲解。 ● 进阶的必学技术一网打尽 本书讲解的爬虫分析、发送请求、数据提取、数据存储、并发爬虫和分布式爬虫等技术是每一位爬虫程序员在进阶路上的必学知识。本书将这些技术的核心要点进行了深入细致的讲解,可以帮助读者尽快取得技术上的突破。 ● 系统讲解前沿稀缺知识 本书中介绍的Selenium和Scrapy等技术,均被国内外各大互联网公司大量使用,但目前这些技术的相关资料却少之又少,实战型的书籍更是匮乏。本书对这些学习资源相对稀缺,但同时又是经典必学的知识进行了较为系统的讲解,非常有助于读者快速提升自己已有的知识体系。 ● 文字通俗易懂 本书的作者不仅有着多年的开发经验,还承担过多年的技术讲师及教学管理工作,非常擅长用清晰易懂的文字阐述各种难点技术。