重磅推荐
【产品特色】


【编辑推荐】

作者多年从事网络爬虫领域的教学及研究工作,有着丰富的实践经验。


面向初学者全面介绍Python网络爬虫的实战宝典,涵盖网络爬虫的核心概念、算法和技术实现,内容系统,案例丰富。


【内容简介】

本书是一本系统、全面地介绍Python网络爬虫的实战宝典。作者融合自己丰富的工程实践经验,紧密结合演示应用案例,内容覆盖了几乎所有网络爬虫涉及的核心技术。在内容编排上,一步步地剖析算法背后的概念与原理,提供大量简洁的代码实现,助你从零基础开始编程实现深度学习算法。


全书按照学习爬虫所涉及的核心技术从易到难,再到应用的顺序分为14章。第1章介绍Python的安装配置和基础语法。 第2章介绍爬虫类型、抓取策略以及网络基础知识。第3章介绍Python常用库。第4章介绍正则表达式的语法、匹配规则。第5章讲解PIL库、Tesseract库和TensorFlow库的语法、类型和识别方法。第6章介绍抓包利器Fiddler。第7章介绍数据存储。第8章介绍Scrapy爬虫框架。第9章介绍多线程爬虫。第10章介绍动态网页爬虫。第11章介绍分布式爬虫。第12章介绍电商网站商品信息爬虫项目。第13章介绍生活娱乐点评类信息爬虫。第14章介绍图片信息类爬虫项目。


【作者简介】

赵国生
哈尔滨师范大学教授,工学博士,硕士生导师,黑龙江省网络安全技术领域特殊人才。主要从事可信网络、入侵容忍、认知计算、物联网安全等方向的教学与科研工作。担任中国计算机学会容错专委会委员、黑龙江省计算机学会网络专委会委员、中国青年博士论坛网络专委会委员、国家自然科学基金委项目评审专家、黑龙江省国资采购专家组成员、黑龙江省财政厅及黑龙江省高等法院信息化资讯专家、黑龙江省教育厅行业信息系统安全专题培训讲师、中国计算机学会高级会员、中国计算机学会YOCSEF哈尔滨副主席。荣获哈尔滨师范大学“先进工作者”“五四青年奖章”“宁齐堃”教学名师等荣誉。主持国家自然科学基金、黑龙江省自然科学基金、黑龙江省科技厅科技攻关等项目10项,发表SCI/EI检索论文50余篇,发明专利2项、实用新型专利6项,拥有软件著作权6项,获省/部级科技进步一等奖2项、三等奖1项,撰写《Linux 操作系统原理与应用》《Matlab数学建模与仿真》《Matlab完全学习手册》《精通Labview》等编著6部。目前担任《电子学报》《通信学报》《系统仿真学报》等期刊审稿专家。


【目录】

前言
第1章 Python环境搭建及基础学习1
1.1 Python 3.6的安装与配置1
1.1.1 Windows下的安装1
1.1.2 Linux下的安装5
1.1.3 macOS下的安装6
1.2 IDE工具:PyCharm的安装7
1.3 基础语法11
1.3.1 *个Python程序11
1.3.2 Python命名规范13
1.3.3 行和缩进15
1.3.4 注释和续行15
1.3.5 Python输出16
1.4 字符串18
1.4.1 字符串运算符18
1.4.2 字符串内置函数19
1.5 数据结构22
1.5.1 列表22
1.5.2 元组25
1.5.3 集合27
1.5.4 字典29
1.6 控制语句31
1.6.1 条件表达式31
1.6.2 选择结构32
1.6.3 循环结构33
1.7 函数、模块和包36
1.7.1 函数36
1.7.2 模块40
1.7.3 包42
1.8 文件的读写操作 45
1.8.1 文件读写步骤与打开模式46
1.8.2 文件的基本操作48
1.8.3 文件写入操作52
1.9 面向对象53
1.9.1 类和对象54
1.9.2 封装性58
1.9.3 继承性59
1.9.4 多态性60
1.10 本章小结61
练习题61
第2章 爬虫原理和网络基础62
2.1 爬虫是什么62
2.2 爬虫的意义62
2.3 爬虫的原理64
2.4 爬虫技术的类型66
2.4.1 聚焦爬虫技术66
2.4.2 通用爬虫技术67
2.4.3 增量爬虫技术69
2.4.4 深层网络爬虫技术70
2.5 爬虫抓取策略71
2.5.1 深度优先遍历策略 71
2.5.2 广度优先遍历策略71
2.5.3 Partial PageRank策略72
2.5.4 大站优先策略72
2.5.5 反向链接数策略73
2.5.6 OPIC策略 73
2.6 反爬虫和反反爬虫73
2.6.1 反爬虫73
2.6.2 反反爬虫77
2.7 网络基础79
2.7.1 网络体系结构79
2.7.2 网络协议79
2.7.3 Socket编程86
2.8 本章小结88
练习题88
第3章 Python常用库89
3.1 Python库的介绍89
3.1.1 常用标准库89
3.1.2 安装使用第三方库91
3.2 urllib库92
3.2.1 urlopen()函数用法93
3.2.2 urlretrieve()函数用法95
3.2.3 URL编码和URL解码96
3.2.4 urlparse()和urlsplit()函数用法97
3.3 request库99
3.3.1 request库的基本使用99
3.3.2 request库的高级用法109
3.4 lxml库113
3.4.1 lxml库的安装和使用113
3.4.2 XPath介绍114
3.4.3 XPath语法116
3.4.4 lxml和XPath的结合使用119
3.5 Beautiful Soup库122
3.5.1 Beautiful Soup库的安装和使用123
3.5.2 提取数据125
3.5.3 CSS选择器131
3.6 实战案例134
3.6.1 使用Beautiful Soup解析网页134
3.6.2 微信公众号爬虫135
3.6.3 爬取豆瓣读书TOP500136
3.6.4 使用urllib库爬取百度贴吧137
3.7 本章小结139
练习题139
第4章 正则表达式140
4.1 概念介绍140
4.2 正则表达式语法141
4.2.1 正则模式的字符141
4.2.2 运算符优先级142
4.3 匹配规则143
4.3.1 单字符匹配规则143
4.3.2 多字符匹配规则144
4.3.3 边界匹配146
4.3.4 分组匹配147
4.4 re模块常用函数150
4.4.1 re.match函数150
4.4.2 re.search函数152
4.4.3 re.compile函数153
4.4.4 re.sub函数155
4.4.5 re.findall函数156
4.4.6 re.finditer函数157
4.4.7 re.split函数157
4.5 本章小结158
练习题158
第5章 验证码159
5.1 PIL库159
5.1.1 PIL库的安装159
5.1.2 PIL库的常用函数160
5.1.3 PIL库的应用163
5.1.4 应用PIL到实际开发169
5.2 Tesseract库172
5.2.1 Tesseract库的安装172
5.2.2 Tesseract库的使用174
5.2.3 Tesseract库的识别训练174
5.3 TensorFlow库180
5.3.1 TensorFlow库的安装180
5.3.2 TensorFlow基本操作184
5.3.3 TensorFlow基础架构186
5.3.4 TensorFlow创建线性回归模型189
5.3.5 TensorFlow识别知乎验证码190
5.4 4种验证码的解决思路191
5.5 OCR处理验证码194
5.6 实战案例195
5.7 本章小结199
练习题199
第6章 抓包利器Fiddler200
6.1 Fiddler简介200
6.2 Fiddler的安装和配置200
6.2.1 Fiddler的安装201
6.2.2 Fiddler的配置202
6.3 Fiddler捕获会话205
6.4 QuickExec命令行的使用207
6.5 Fiddler断点功能209
6.6 Fiddler的实用工具210
6.7 实战案例212
6.7.1 使用Fiddler抓取数据并分析212
6.7.2 使用Fiddler抓取HTTPS流量214
6.7.3 使用Fiddler抓取手机应用215
6.8 本章小结219
练习题219
第7章 数据存储220
7.1 数据的基本存储220
7.1.1 数据存储至TXT220
7.1.2 数据存储至CSV222
7.1.3 数据存储至JSON223
7.2 数据存储至MySQL数据库227
7.2.1 配置MySQL服务227
7.2.


【前言】

为什么写作本书
大数据时代已经到来,网络爬虫技术已成为这个时代不可或缺的一项技术,企业需要数据来分析用户行为、产品的不足之处以及竞争对手的信息等,而这一切的首要条件就是数据的采集。在互联网社会中,数据是无价之宝,一切皆为数据,谁拥有了大量有用的数据,谁就拥有了决策的主动权。如何有效地采集并利用这些信息成了一个巨大的挑战,而网络爬虫是自动采集数据的有效手段。网络爬虫是一种按照一定的规则,自动抓取互联网海量信息的程序或脚本。网络爬虫的应用领域很广泛,如搜索引擎、数据采集、广告过滤、大数据分析等。
笔者多年来一直从事网络爬虫相关课程的讲授及科学研究工作,有着丰富的教学和实践经验。在内容编排上,本书采用梯度层次化结构,由浅入深地介绍爬虫的知识点、原理及应用,并结合大量实例讲解操作步骤,使读者能够快速地理解网络爬虫的核心技术。
内容介绍
全书共14章,具体内容如下:
第1章主要介绍Python的安装、配置和基础语法,以及Python的字符串、数据结构、控制语句和函数等;
第2章主要介绍爬虫的类型、爬虫的抓取策略以及深入学习爬虫所需的网络基础等相关知识;
第3章主要对爬虫技术中经常使用到的urllib、request、lxml和Beautiful Soup库等进行详细介绍,*后展示了4个利用Python爬取数据的实例;
第4章主要对Python中正则表达式的语法、匹配规则和re模块常用函数进行详细阐述,并给出了实例;
第5章主要对3种主流库(PIL库、Tesseract库和TensorFlow库)的语法、类型、识别方法和案例进行介绍;
第6章详细介绍Fiddler的安装与配置、捕获会话、QuickExec命令行的使用和Fiddler的断点功能等;
第7章主要介绍数据存储在文件中和存储在数据库中这两种存储方式;
第8章重点介绍Scrapy框架的Selector用法,以及Beautiful Soup库和CrawlSpider的使用,然后介绍了Scrapy Shell和Scrapyrt的使用;
第9章主要介绍多线程和Threading模块的基本概念;
第10章主要介绍如何对动态网页进行信息爬取,首先介绍了浏览器开发工具的使用,然后介绍了异步加载技术、AJAX技术和Selenium模拟浏览器;
第11章主要介绍分布式爬虫的原理及实现过程,然后介绍了Scrapy-redis分布式组件的工作机制和安装配置;
第12章主要介绍如何利用Selenium抓取并用pyquery解析电商网站的商品信息,然后将其保存到MongoDB;
第13章主要介绍静态网页和动态网页的爬取方法,并对请求-响应关系进行了介绍,然后介绍了请求头和请求体;
第14章主要讲解如何通过urllib模块和Scrapy框架实现图片爬虫项目,以及利用TensorFlow、KNN和CNN等机器学习框架进行训练的方法与过程。
主要特点
本书针对网络爬虫学习的特点,结合作者多年使用网络爬虫的教学和实践经验,由浅入深、从简到繁、图文并茂地介绍了Python基础语法、爬虫原理、爬虫常用库模块、正则表达式、验证码识别、抓包工具Fiddler、数据存储、Scrapy爬虫框架、多线程爬虫、动态网页爬虫和分布式爬虫等方面的内容。本书内容条理清晰、针对性强,语言通俗易懂,在讲解的过程中配合大量的实例操作,符合读者的学习习惯。每章都是从基础知识开始介绍,然后是实例分析,*后附以练习题巩固学习效果,将理论与实践紧密结合。
具体来讲,本书具有以下鲜明的特点:
内容系统,由浅入深;
案例讲解,通俗易懂;
综合实战,注重实践。
读者对象
本书适合网络爬虫初学者,以及具有一定网络爬虫基础,但希望更深入了解、掌握爬虫原理与应用的中级读者阅读。
本书可以作为本科或者大专院校网络安全、电子信息、数据科学、网络工程等相关专业的教材,也可作为从事网络爬虫相关工作的科研或者工程技术人员的参考书。
致谢
本书由哈尔滨师范大学的赵国生和哈尔滨理工大学的王健编写。其中,赵国生主要负责第1~11章的编写,王健负责第12~14章的编写。参与本书大量辅助性工作的研究生有邹伊凡、刘冬梅、张婧婷、廖玉婷、晁绵星、谢宝文等,在此表示感谢。
特别感谢以下项目对本书的支持:国家自然科学基金项目“可生存系统的自主认知模式研究”(61202458)、国家自然科学基金项目“基于认知循环的任务关键系统可生存性自主增长模型与方法”(61403109)、高等学校博士点基金项目(20112303120007)、哈尔滨市科技创新人才研究专项(2016RAQXJ036)和黑龙江省自然科学基金(F2017021)。
感谢您选择本书,虽然笔者在编写过程中力求叙述准确、完善,但由于水平有限,书中仍可能存在欠妥之处,希望您可以把对本书的意见和建议告诉我们。
*后,再次希望本书能够对您的工作和学习有所帮助!


返回顶部