《精通Python网络爬虫:核心技术、框架与项目实战》——导读

简介:


前  言

为什么写这本书

网络爬虫其实很早就出现了,最开始网络爬虫主要应用在各种搜索引擎中。在搜索引擎中,主要使用通用网络爬虫对网页进行爬取及存储。

随着大数据时代的到来,我们经常需要在海量数据的互联网环境中搜集一些特定的数据并对其进行分析,我们可以使用网络爬虫对这些特定的数据进行爬取,并对一些无关的数据进行过滤,将目标数据筛选出来。对特定的数据进行爬取的爬虫,我们将其称为聚焦网络爬虫。在大数据时代,聚焦网络爬虫的应用需求越来越大。

目前在国内Python网络爬虫的书籍基本上都是从国外引进翻译的,国内的本版书籍屈指可数,故而我跟华章的副总编杨福川策划了这本书。本书的撰写过程中各方面的参考资料非常少,因此完成本书所花费的精力相对来说是非常大的。

本书从系统化的视角,为那些想学习Python网络爬虫或者正在研究Python网络爬虫的朋友们提供了一个全面的参考,让读者可以系统地学习Python网络爬虫的方方面面,在理解并掌握了本书的实例之后,能够独立编写出自己的Python网络爬虫项目,并且能够胜任Python网络爬虫工程师相关岗位的工作。

同时,本书的另一个目的是,希望可以给大数据或者数据挖掘方向的从业者一定的参考,以帮助这些读者从海量的互联网信息中爬取需要的数据。所谓巧妇难为无米之炊,有了这些数据之后,从事大数据或者数据挖掘方向工作的读者就可以进行后续的分析处理了。

本书的主要内容和特色

本书是一本系统介绍Python网络爬虫的书籍,全书注重实战,涵盖网络爬虫原理、如何手写Python网络爬虫、如何使用Scrapy框架编写网络爬虫项目等关于Python网络爬虫的方方面面。

本书的主要特色如下:

系统讲解Python网络爬虫的编写方法,体系清晰。

结合实战,让读者能够从零开始掌握网络爬虫的基本原理,学会编写Python网络爬虫以及Scrapy爬虫项目,从而编写出通用爬虫及聚焦爬虫,并掌握常见网站的爬虫反屏蔽手段。

有配套免费视频,对于书中的难点,读者可以直接观看作者录制的对应视频,加深理解。

拥有多个爬虫项目编写案例,比如博客类爬虫项目案例、图片类爬虫项目案例、模拟登录爬虫项目等。除此之外,还有很多不同种类的爬虫案例,可以让大家在理解这些案例之后学会各种类型爬虫的编写方法。

总之,在理解本书内容并掌握书中实例之后,读者将能胜任Python网络爬虫工程师方向的工作并学会各种类型网络爬虫项目的编写。此外,本书对于大数据或数据挖掘方向的从业者也非常有帮助,比如可以利用Python网络爬虫轻松获取所需的数据信息等。

本书面向的读者

Python网络爬虫初学者

网络爬虫工程师

大数据及数据挖掘工程师

高校计算机专业的学生

其他对Python或网络爬虫感兴趣的人员

如何阅读本书

本书分为四篇,共计20章。

第一篇为理论基础篇(第1~2章),主要介绍了网络爬虫的基础知识,让大家从零开始对网络爬虫有一个比较清晰的认识。

第二篇为核心技术篇(第3~9章),详细介绍了网络爬虫实现的核心技术,包括网络爬虫的工作原理、如何用Urllib库编写网络爬虫、爬虫的异常处理、正则表达式、爬虫中Cookie的使用、手写糗事百科爬虫、手写链接爬虫、手写微信爬虫、手写多线程爬虫、浏览器伪装技术、Python网络爬虫的定向爬取技术及实例等。学完这一部分内容,读者就可以写出自己的爬虫了。这部分的爬虫编写采用的是一步步纯手写的方式进行的,没有采用框架。

第三篇为框架实现篇(第10~17章),主要详细介绍了如何用框架实现Python网络爬虫项目。使用框架实现Python网络爬虫项目相较于手写方式更加便捷,主要包括Python爬虫框架分类、Scrapy框架在各系统中的安装以及如何避免各种“坑”、如何用Scrapy框架编写爬虫项目、Scrapy框架架构详解、Scrapy的中文输出与存储、在Scrapy中如何使用for循环实现自动网页爬虫、如何通过CrawlSpider实现自动网页爬虫、如何将爬取的内容写进数据库等。其中第12章为基础部分,读者需要着重掌握。

第四篇为项目实战篇(第18~20章),分别讲述了博客类爬虫项目、图片类爬虫项目、模拟登录爬虫项目的编程及实现。其中,也会涉及验证码处理等方面的难点知识,帮助读者通过实际的项目掌握网络爬虫项目的编写。
勘误和支持

由于作者的水平有限,书中难免有一些错误或不准确的地方,恳请各位读者不吝指正。

致谢

感谢机械工业出版社华章公司的副总编杨福川老师与编辑李艺老师,在近一年的时间里,是你们一次次在我遇到困难的时候,给予我鼓励,让我可以坚持写下去。创作一本图书是非常艰苦的,除了技术知识等因素之外,还需要非常大的毅力。特别感谢杨福川在写作过程中对我各方面的支持,尤其是对我毅力的培养。

感谢CSDN、51CTO与极客学院,因为你们,让我在这个领域获得了更多的学员与支持。

感谢恩师何云景教授对我创业方面的帮助,因为有您,我才拥有了一个更好的创业开端及工作环境。

特别致谢

最后,需要特别感谢的是我的女友,因为编写这本书,少了很多陪你的时间,感谢你的不离不弃与理解包容。希望未来可以加倍弥补你那些错过吃的美食和那些错过逛的街道。

同时,也要感谢你帮我完成书稿的校对工作,谢谢你的付出与支持。因为有了你默默的付出,我才能坚定地走下去;因为有了你不断的支持,我才可以安心地往前冲。

感谢爷爷从小对我人生观、价值观的培养,您是一个非常有思想的人。

感谢远方的父母、叔叔、姐姐,那些亲情的陪伴是我最珍贵的财富。

谨以此书献给热爱Python的朋友们!

目  录

前 言
[第一篇 理论基础篇
第1章 什么是网络爬虫
1.1 初识网络爬虫 ]
1.2 为什么要学网络爬虫
1.3 网络爬虫的组成
1.4 网络爬虫的类型
1.5 爬虫扩展——聚焦爬虫
1.6 小结
[第2章 网络爬虫技能总览
2.1 网络爬虫技能总览图 ]
2.2 搜索引擎核心
2.3 用户爬虫的那些事儿
2.4 小结
[第二篇 核心技术篇
第3章 网络爬虫实现原理与实现技术
3.1 网络爬虫实现原理详解 ]
3.2 爬行策略
3.3 网页更新策略
3.4 网页分析算法
3.5 身份识别
3.6 网络爬虫实现技术
3.7 实例——metaseeker
3.8 小结
第4章 Urllib库与URLError异常处理
4.1 什么是Urllib库
4.2 快速使用Urllib爬取网页
4.3 浏览器的模拟——Headers属性
4.4 超时设置
4.5 HTTP协议请求实战
4.6 代理服务器的设置
4.7 DebugLog实战
4.8 异常处理神器——URLError实战
4.9 小结
第5章 正则表达式与Cookie的使用
5.1 什么是正则表达式
5.2 正则表达式基础知识
5.3 正则表达式常见函数
5.4 常见实例解析
5.5 什么是Cookie
5.6 Cookiejar实战精析
5.7 小结
第6章 手写Python爬虫
6.1 图片爬虫实战
6.2 链接爬虫实战
6.3 糗事百科爬虫实战
6.4 微信爬虫实战
6.5 什么是多线程爬虫
6.6 多线程爬虫实战
6.7 小结
第7章 学会使用Fiddler
7.1 什么是Fiddler
7.2 爬虫与Fiddler的关系
7.3 Fiddler的基本原理与基本界面
7.4 Fiddler捕获会话功能
7.5 使用QuickExec命令行
7.6 Fiddler断点功能
7.7 Fiddler会话查找功能
7.8 Fiddler的其他功能
7.9 小结
第8章 爬虫的浏览器伪装技术
8.1 什么是浏览器伪装技术
8.2 浏览器伪装技术准备工作
8.3 爬虫的浏览器伪装技术实战
8.4 小结
第9章 爬虫的定向爬取技术
9.1 什么是爬虫的定向爬取技术
9.2 定向爬取的相关步骤与策略
9.3 定向爬取实战
9.4 小结
第三篇 框架实现篇
第10章 了解Python爬虫框架
10.1 什么是Python爬虫框架
10.2 常见的Python爬虫框架
10.3 认识Scrapy框架
10.4 认识Crawley框架
10.5 认识Portia框架
10.6 认识newspaper框架
10.7 认识Python-goose框架
10.8 小结
第11章 爬虫利器——Scrapy安装与配置
11.1 在Windows7下安装及配置Scrapy实战详解
11.2 在Linux(Centos)下安装及配置Scrapy实战详解
11.3 在MAC下安装及配置Scrapy实战详解
11.4 小结
第12章 开启Scrapy爬虫项目之旅
12.1 认识Scrapy项目的目录结构
12.2 用Scrapy进行爬虫项目管理
12.3 常用工具命令
12.4 实战:Items的编写
12.5 实战:Spider的编写
12.6 XPath基础
12.7 Spider类参数传递
12.8 用XMLFeedSpider来分析XML源
12.9 学会使用CSVFeedSpider
12.10 Scrapy爬虫多开技能
12.11 避免被禁止
12.12 小结
第13章 Scrapy核心架构
13.1 初识Scrapy架构
13.2 常用的Scrapy组件详解
13.3 Scrapy工作流
13.4 小结
第14章 Scrapy中文输出与存储
14.1 Scrapy的中文输出
14.2 Scrapy的中文存储
14.3 输出中文到JSON文件
14.4 小结
第15章 编写自动爬取网页的爬虫
15.1 实战:items的编写
15.2 实战:pipelines的编写
15.3 实战:settings的编写
15.4 自动爬虫编写实战
15.5 调试与运行
15.6 小结
第16章 CrawlSpider
16.1 初识CrawlSpider
16.2 链接提取器
16.3 实战:CrawlSpider实例
16.4 小结
第17章 Scrapy高级应用
17.1 如何在Python3中操作数据库
17.2 爬取内容写进MySQL
17.3 小结
第四篇 项目实战篇
第18章 博客类爬虫项目
18.1 博客类爬虫项目功能分析
18.2 博客类爬虫项目实现思路
18.3 博客类爬虫项目编写实战
18.4 调试与运行
18.5 小结
第19章 图片类爬虫项目
19.1 图片类爬虫项目功能分析
19.2 图片类爬虫项目实现思路
19.3 图片类爬虫项目编写实战
19.4 调试与运行
19.5 小结
第20章 模拟登录爬虫项目
20.1 模拟登录爬虫项目功能分析
20.2 模拟登录爬虫项目实现思路
20.3 模拟登录爬虫项目编写实战
20.4 调试与运行
20.5 小结

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
813 0
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
830 1
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
390 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
847 0
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
532 0
|
JSON 监控 BI
拼多多批量下单工具,拼多多买家批量下单软件,低价下单python框架分享
使用Selenium实现自动化操作流程多线程订单处理提升效率
|
机器人 数据安全/隐私保护 Python
企业微信自动回复软件,企业微信自动回复机器人,python框架分享
企业微信机器人包含完整的消息处理流程,支持文本消息自动回复、事件处理、消息加密解密等功能
|
Web App开发 数据安全/隐私保护 Python
万能ck提取登录软件,京东贴吧淘宝拼多多cookie提取工具,python框架分享
这个框架使用了Selenium进行浏览器自动化操作,包含了京东和淘宝的登录示例。代码展示了如
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
347 1
|
JSON 数据安全/隐私保护 数据格式
拼多多批量下单软件,拼多多无限账号下单软件,python框架仅供学习参考
完整的拼多多自动化下单框架,包含登录、搜索商品、获取商品列表、下单等功能。

推荐镜像

更多