Python爬虫技术:深入理解原理、技术与开发:principles, technologies and development9787302535683
正版图书,可开发票,请放心购买。
¥
43.86
4.9折
¥
89
全新
库存10件
作者李宁
出版社清华大学出版社
ISBN9787302535683
出版时间2020-01
装帧平装
开本其他
定价89元
货号9664766
上书时间2024-11-26
商品详情
- 品相描述:全新
- 商品描述
-
前言
PREFACE 前 言
Python现在非常火爆。但 Python就和英语一样,如果只会 Python语言,就相当于只能用英语进行日常会话。然而,真正的英语高手是可以作为专业领域翻译的,如 IT、金融、数学等专业领域。 Python也是一样,光学习 Python语言是不行的,要想找到更好的工作,或得到更高的薪水,需要学会用 Python做某一领域的应用。
现在 Python应用的热门领域比较广,例如人工智能,不过人工智能不光涉及 Python语言本身的技术,还涉及数学领域的知识,虽然比较火爆,但*不是短时间可以掌握的。然后有一个领域与人工智能的火爆程度相当,但不像人工智能那样难入门,这就是爬虫领域。
为什么爬虫领域如此火爆呢?其实爬虫的基本功能就是从网上下载各种类型的数据(如 HTML、图像文件等)。但不要小瞧这些下载的数据,因为这些数据将成为很多应用的数据源。例如,著名的 Google搜索引擎,每天都会有数以亿计的查询请求,而搜索引擎为这些请求返回的数据,都是来源于强大的爬虫。编写搜索引擎的*步就是通过爬虫抓取整个互联网的数据,然后将这些数据库保存到本地(以特定的数据格式),接下来就是对这些数据进行分析整理。然后才可以通过搜索引擎进行查询。虽然搜索引擎的实现技术非常多,也非常复杂,但爬虫是 1,其他的所有技术都是 0,如果没有爬虫搜集数据,再强大的分析程序也毫无用武之地。
除了搜索引擎外,人工智能中的重要分支深度学习也需要爬虫抓取的数据来训练模型。例如,要想训练一个识别金字塔的深度学习模型,就需要大量与金字塔相关的图片进行训练。*简单的方式,就是使用百度或谷歌搜索金字塔图片,然后用爬虫抓取这些图片到本地。这是利用了搜索引擎通过关键字分类的特性,并且重新利用了这些分类的图片。
通过这些例子可以了解到,学习爬虫是进入其他更高端领域的钥匙,所以学习 Python爬虫将成为*个需要选择的热门领域。
尽管爬虫的基本功能是下载文件,但一个复杂的爬虫应用,可不光涉及网络技术。将数据下载后,还需要对数据进行分析,提取需要的信息,以及进行数据可视化,甚至需要一个基于 UI的可视化爬虫。所以与爬虫有关的技术还是很多的。
由于 Pythonp爬虫涉及的技术很多,学习资料过于分散。所以,笔者觉得很有必要编写一本全面介绍 Python爬虫实战类的书籍,在书中分享笔者对 Python爬虫以及相关技术的理解和经验,帮助同行和感兴趣的朋友快速入门,并利用 Python语言编写各种复杂的爬虫应用。笔者希望本书能起到抛砖引玉的作用,使读者对 Python爬虫以及相关技术产生浓厚的兴趣,并能成功进入 Python爬虫领域。加油!高薪的工作在等着你们!
本书使用*的 Python 3编写,并在书中探讨了关于 Python爬虫的核心技术。全书分 5篇,共 20章。内容涵盖 Python爬虫的基础知识、常用网络库、常用分析库、数据存储技术、异步数据处理、可见即可爬技术、抓取移动 App、Scrapy等。本书还包含 20多个真实的项目,以便让读者身临其境 地体验 Python爬虫的魅力。
限于篇幅,本书无法囊括 Python爬虫以及相关技术的方方面面,只能尽自己所能,与大家分享尽可能多的知识和经验。相信通过本书的学习,读者可以拥有进一步深入学习的能力,达到 Python爬虫高手的程度也只是时间问题。
*后,笔者希望本书能为国内的 Python爬虫以及相关技术的普及,为广大从业者提供有价值的实践经验并帮助他们快速上手贡献绵薄之力。
编著者
商品简介
本书从实战角度系统讲解 Python爬虫的核心知识点,并通过大量的真实项目让读者熟练掌握 Python爬虫技术。本书用 20多个实战案例,完美演绎了使用各种技术编写 Python爬虫的方式,读者可以任意组合这些技术,完成非常复杂的爬虫应用。 全书共 20章,分为 5篇。第 1篇基础知识(第 1、2章),主要包括 Python运行环境的搭建、 HTTP基础、网页基础( HTML、CSS、JavaScript等)、爬虫的基本原理、 Session与 Cookie。第 2篇网络库(第 3~ 6章),主要包括网络库 urllib、urllib3、requests和 Twisted的核心使用方法,如发送 HTTP请求、处理超时、设置 HTTP请求头、搭建和使用代理、解析链接、 Robots协议等。第 3篇解析库(第 7~ 10章),主要包括 3个常用解析库( lxml、Beautiful Soup和 pyquery)的使用方法,同时介绍多种用于分析 HTML代码的技术,如正则表达式、 XPath、CSS选择器、方法选择器等。第 4篇数据存储(第 11、12章),主要包括 Python中数据存储的解决方案,如文件存储和数据库存储,其中数据库存储包括多种数据库,如本地数据库 SQLite、网络数据库 MySQL以及文档数据库 MongoDB。第 5篇爬虫高级应用(第 13~ 20章),主要包括 Python爬虫的一些高级技术,如抓取异步数据、 Selenium、Splash、抓取移动 App数据、 Appium、多线程爬虫、爬虫框架 Scrapy,*后给出一个综合的实战案例,综合了 Python爬虫、数据存储、 PyQt5、多线程、数据可视化、Web等多种技术实现一个可视化爬虫。 本书可以作为广大计算机软件技术开发者、互联网技术研究人员学习“爬虫技术”的参考用书。也可以作为高等院校计算机科学与技术、软件工程、人工智能等专业的教学参考用书。
作者简介
李宁,欧瑞科技创始人,极客起源IT问答社区(https://geekori.com)创始人,欧瑞学院品牌讲师,计算机专业硕士。拥有近20年软件开发经验,10年企业内训经验。曾任靠前某大型软件公司项目经理。CSDN博客专家、CSDN学院签约讲师、51CTO学院特级讲师。长久以来一直从事JavaScript、Node.js、Java、Kotlin、Python、Android、iOS、C++、Hadoop、Spark、深度学习的开发和技术指导工作。对靠前外相关领域的技术、理论和实践有很深的理解和研究。目前已经出版超过30本IT畅销书,主要著作包括《Kotlin程序开发入门精要》《Android深度探索 卷1和卷2》《Android开发权wei指南 版和第2版》等。
目录
第 1篇基础知识
第 1章开发环境配置 ................................. 2?
1.1 安装官方的 Python运行环境 .........................2?
1.2 ?配置 PATH环境变量.....................................5?
1.3 安装 Anaconda Python开发环境 ...................6?
1.4 安装 PyCharm ...............................................7?
1.5 配置 PyCharm ...............................................8?
1.6 ?小结 ........................................................... 10
第 2章爬虫基础.......................................11?
2.1 HTTP基础...................................................... 11?
2.1.1 ?URI和 URL ........................................ 11?
2.1.2 ?超文本 ................................................ 12?
2.1.3 ?HTTP与 HTTPS ................................. 12?
2.1.4 ?HTTP的请求过程 ............................... 15?
2.1.5 ?请求 .................................................... 17?
2.1.6 ?响应 .................................................... 20?
2.2 网页基础 ........................................................ 23?
2.2.1 ?HTML ................................................. 23?
2.2.2 ?CSS .................................................... 24?
2.2.3 ?CSS选择器......................................... 25?
2.2.4 ?JavaScript ........................................... 27?
2.3 爬虫的基本原理 .............................................. 27?
2.3.1 ?爬虫的分类 ......................................... 27?
2.3.2 ?爬虫抓取数据的方式和手段 ................. 28?
2.4 Session与 Cookie ........................................... 28?
2.4.1 ?静态页面和动态页面 ........................... 29?
2.4.2 ?无状态 HTTP与 Cookie ...................... 30?
2.4.3 ?利用 Session和 Cookie保持状态 ......... 30?
2.4.4 ?查看的 Cookie .............................. 31?
2.4.5 ?HTTP状态何时会失效 ........................ 32?
CONTENTS 目 录
2.5 实战案例:抓取所有的网络资源 ..................... 33?
2.6 实战案例:抓取博客文章列表 ......................... 37?
2.7 小结 ............................................................... 40
第 2篇网络库
第 3章网络库 urllib ................................. 42?
3.1 ?urllib简介 ...................................................... 42?
3.2 ?发送请求与获得响应 ....................................... 43?
3.2.1 ?用 urlopen函数发送 HTTP GET请求 .................................................... 43?
3.2.2 ?用 urlopen函数发送 HTTP POST请求 .................................................... 44?
3.2.3 ?请求超时 ............................................. 45?
3.2.4 ?设置 HTTP请求头 .............................. 46?
3.2.5 ?设置中文 HTTP请求头 ....................... 48?
3.2.6 ?请求基础验证页面 ............................... 50?
3.2.7 ?搭建代理与使用代理 ........................... 54?
3.2.8 ?读取和设置 Cookie .............................. 56?
3.3 ?异常处理 ........................................................ 60?
3.3.1 URLError ............................................60?
3.3.2 HTTPError ..........................................61?
3.4 ?解析链接 ........................................................ 62?
3.4.1 ?拆分与合并 URL(urlparse与 urlunparse) ....................... 62?
3.4.2 ?另一种拆分与合并 URL的方式(urlsplit与 urlunsplit) .......................... 63?
3.4.3 ?连接 URL(urljoin) ............................. 65?
3.4.4 ?URL编码(urlencode)......................... 65?
3.4.5 ?编码与解码(quote与 unquote)........... 66?
3.4.6 ?参数转换(parse_qs与 parse_qsl) ........ 66?
3.5 ?Robots协议 .................................................... 67?
3.5.1 Robots协议简介 ................................. 67?
3.5.2 分析 Robots协议 ................................ 68?
3.6 小结 ............................................................... 69
第 4章网络库 urllib3 ............................... 70?
4.1 urllib3简介 .................................................... 70?
4.2 urllib3模块 .................................................... 70?
4.3 发送 HTTP GET请求 ...................................... 71?
4.4 发送 HTTP POST请求 .................................... 72?
4.5 HTTP请求头 .................................................. 74?
4.6 HTTP响应头 .................................................. 76?
4.7 上传文件 ........................................................ 76?
4.8 超时 ............................................................... 78?
4.9 小结 ............................................................... 79
第 5章网络库 requests ........................... 80?
5.1 基本用法 ........................................................ 80?
5.1.1 ?requests的 HelloWorld ........................ 81?
5.1.2 ?GET请求 ............................................ 81?
5.1.3 ?添加 HTTP请求头 .............................. 82?
5.1.4 ?抓取二进制数据 .................................. 83?
5.1.5 ?POST请求 .......................................... 84?
5.1.6 ?响应数据 ............................................. 85?
5.2 用法 ........................................................ 87?
5.2.1 ?上传文件 ............................................. 88?
5.2.2 ?处理 Cookie ........................................ 89?
5.2.3 ?使用同一个会话(Session) .................. 90?
5.2.4 ?SSL证书验证...................................... 91?
5.2.5 ?使用代理 ............................................. 94?
5.2.6 ?超时 .................................................... 95?
5.2.7 ?身份验证 ............................................. 97?
5.2.8 ?将请求打包 ......................................... 97?
5.3 小结 ............................................................... 98
第 6章 Twisted网络框架.......................... 99?
6.1 异步编程模型 ................................................. 99?
6.2 Reactor(反应堆)模式 ................................. 101?
6.3 HelloWorld,Twisted框架 ............................ 101?
6.4 用 Twisted实现时间戳客户端........................ 103?
6.5 用 Twisted实现时间戳服务端........................ 104?
6.6 小结 ............................................................. 105
第 3篇解析库
第 7章正则表达式 ................................. 108?
7.1 使用正则表达式 ............................................ 108?
7.1.1 ?使用 match方法匹配字符串 .............. 108?
7.1.2 ?使用 search方法在一个字符串中查找模式 ........................................... 109?
7.1.3 ?匹配多个字符串 ................................ 110?
7.1.4 ?匹配任何单个字符 ............................. 111?
7.1.5 ?使用字符集 ....................................... 112?
7.1.6 ?重复、可选和特殊字符 ...................... 114?
7.1.7 ?分组 .................................................. 117?
7.1.8 ?匹配字符串的起始和结尾以及单词边界 ........................................... 118?
7.1.9 ?使用 findall和 finditer查找每一次出现的位置 ............................. 120?
7.1.10 用 sub和 subn搜索与替换............... 121?
7.1.11 使用 split分隔字符串 ...................... 122?
7.2 一些常用的正则表达式 ................................. 123?
7.3 项目实战:抓取小说目录和全文 ................... 124?
7.4 项目实战:抓取猫眼电影 00榜单 .......... 128?
7.5 项目实战:抓取糗事百科网的段子 ................ 133?
7.6 小结 ............................................................. 136
第 8章 lxml与 XPath ............................. 137?
8.1 lxml基础...................................................... 137?
8.1.1 ?安装 lxml ............................
— 没有更多了 —
以下为对购买帮助不大的评价