0


Python网络爬虫快速入门
作者:耿倩, 白国政丛书名: ISBN:978-7-5685-3456-7页数: 开本:装帧:平装 出版时间:2021-11-01中图分类:
¥48.80

编辑推荐

本教材从初学者的角度出发,由浅入深地讲解了学习网络爬虫的基础知识,以及爬虫采集技术、信息提取技术等的基本使用方法,以帮助读者掌握爬虫的相关技能,使其能够独立编写自己的爬虫项目。本教材在内容安排上,充分考虑了知识体系的完整性和独立性,涵盖了Web页面及相关技术,爬取和解析网页数据的相关技术,以及数据存储技术等内容。全书共10章内容,第1、2章介绍Python环境的搭建以及掌握爬虫的实现原理,第3、4章介绍爬虫的网络库,包括urllib、request库的使用,第5-8章讲解了解析网页数据的相关技术以及效率更高的多线程爬虫,包括正则表达式、XPath、Beautiful Soup以及封装了这些技术的Python模块或库,希望读者在解析网页数据时,可以根据具体情况灵活选择合理的技术进行运用。第9、10章主要介绍存储爬虫数据,包括文件存储和数据库存储。
  《Python网络爬虫快速入门》是新世纪高职高专教材编审委员会组编的大数据技术专业系列规划教材之一。
  随着大数据时代的到来,互联网上的信息每天都在爆炸式增长。同时随着“互联网+”国家战略的推进,互联网上的大数据应用价值变得多样化,因此,互联网数据成为大数据教学和研究应用的重要数据源。在这种背景下,数据采集技术成为很多人迫切需要掌握的技术。
  网络爬虫是一种按照一定规则,自动请求万维网网站并提取网络数据的程序,它可以代替人力进行信息采集,能够自动采集并高效利用互联网中的数据。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python语言方便、高效的特点使其成为爬虫程序编写时最为流行的编程语言之一。Python功能强大的第三方库无疑降低了编写爬虫程序的难度和获取信息的成本。
  本教材从初学者的角度出发,由浅入深地讲解了学习网络爬虫的基础知识,以及爬虫采集技术、信息提取技术等的基本使用方法,以帮助读者掌握爬虫的相关技能,使其能够独立编写自己的爬虫项目。本教材在内容安排上,充分考虑了知识体系的完整性和独立性,涵盖了Web页面及相关技术,爬取和解析网页数据的相关技术,以及数据存储技术等内容。全书共10章内容,第1、2章介绍Python环境的搭建以及掌握爬虫的实现原理,第3、4章介绍爬虫的网络库,包括urllib、request库的使用,第5-8章讲解了解析网页数据的相关技术以及效率更高的多线程爬虫,包括正则表达式、XPath、Beautiful Soup以及封装了这些技术的Python模块或库,希望读者在解析网页数据时,可以根据具体情况灵活选择合理的技术进行运用。第9、10章主要介绍存储爬虫数据,包括文件存储和数据库存储。
  本教材内容全面,结构清晰,通过最简单的Python程序入手,在网络爬虫这一核心主题下循序渐进,不断深入。网络爬虫的实践性和操作系比较强,本教材提供了丰富代码供读者参考,并且从实际出发,选取了实用性与趣味性兼具的主题进行网络爬虫实战。同时本教材还将近年来发生的比较典型的网络爬虫工作案例融入教学当中,使学生在学习专业知识的同时,自觉践行社会主义核心价值观,不断强化职业道德素质,筑牢法律意识,维护法律权威,树立正确的世界观,人生观,价值观。在实现民族复兴的伟大征程中,做懂专业,修美德,守法律,知使命,敢担当,勇拼搏的时代新人。
  在编写本教材的过程中,编者参考、引用和改编了国内外出版物中的相关资料以及网络资源,在此表示深深的谢意!相关著作权人看到本教材后,请与出版社联系,出版社将按照相关法律的规定支付稿酬。
  由于时间仓促和编者水平有限,书中难免存在疏漏之处,敬请广大读者批评指正。
  编 者
  2021年11月
 
第1部分 基础概念
第1章 爬虫基础和开发环境的配置 3
 1.1 爬虫产生的背景和概念 3
  1.1.1 爬虫产生的背景 3
  1.1.2 爬虫的概念 4
 1.2 爬虫的用途和分类 4
  1.2.1 爬虫的用途 4
  1.2.2 爬虫的分类 6
 1.3 爬虫实现原理 7
  1.3.1 通用爬虫工作原理 7
  1.3.2 聚焦爬虫工作原理 8
 1.4 爬虫爬取网页的详细流程 9
 1.5 防爬虫应对策略 10
 1.6 爬虫数据采集与挖掘的合规性 13
 1.7 开发环境的配置 14
  1.7.1 在Windows上安装Python 14
  1.7.2 Pycharm的安装与使用 16
 习 题 20

第2章 网页前端基础 22
 2.1 URL (统一资源定位符) 22
  2.1.1 协议头 22
  2.1.2 服务器地址和端口 23
  2.1.3 路径 23
 2.2 超文本 23
 2.3 HTTP与HTTPS 23
  2.3.1 HTTP版本的技术特性 23
  2.3.2 HTTPS 25
 2.4 HTTP网络请求原理 25
  2.4.1 浏览器显示网页过程 26
  2.4.2 客户端 HTTP 请求格式 26
  2.4.3 服务器HTTP相应格式 29
 2.5 ROBOTS协议 31
  2.5.1 Robots协议的内涵 31
  2.5.2 经典robots.txt例子 31
 2.6 网页基础 35
  2.6.1 HTML语言规范 35
  2.6.2 CSS简述 36
  2.6.3 节点树及节点间的关系 37
 2.7 Session与Cookie 38
  2.7.1 Cookie 39
  2.7.2 Session 41
 习 题 42
案例1 爬虫合法吗? 43

第2部分 网络库
第3章 网络库urllib 47
 3.1 发送请求与获得响应 48
  3.1.1 用urlopen函数发送HTTP GET请求 48
  3.1.2 用urlopen函数发送HTTP POST请求 49
  3.1.3 请求超时 50
  3.1.4 设置HTTP请求头 51
  3.1.5 使用代理 53
  3.1.6 读取和设置Cookie 54
 3.2 异常处理 56
 3.3 解析链接 57
  3.3.1 urlparse与urlunparse 57
  3.3.2 urlsplit和urlunsplit 59
  3.3.3 urljoin 60
  3.3.4 urlencode 60
  3.3.5 quote与unquote 61
  3.3.6 parse_qs与parse_qsl 61
 3.4 解析robots.txt文件 62
 3.5 阶段案例 63
 习 题 64

第4章 网络库requests 66
 4.1 基本用法 66
  4.1.1 requests的GET请求 66
  4.1.2 添加HTTP请求头 68
  4.1.3 抓取二进制数据 69
  4.1.4 POST请求 70
  4.1.5 响应数据 70
 4.2 高级应用 71
  4.2.1 处理Cookie 71
  4.2.2 使用同一会话(Session) 73
  4.2.3 使用代理 74
  4.2.4 超时 75
  4.2.6 请求打包 76
 4.3 阶段案例 77
 习 题 78
案例2 大众点评诉百度案一审宣判百度赔偿323万 80

第3部分 解析库
第5章 正则表达式 83
 5.1 了解正则表达式 83
  5.1.1 原子 83
  5.1.2 元字符 84
 5.2 re库概述 85
  5.2.1 match()方法和group()方法 85
  5.2.2 search()方法 89
  5.2.3 findall()方法和finditer()方法 95
  5.2.4 sub()方法和subn()方法 96
  5.2.5 split()方法 97
 5.3 使用正则表达式抓取数据 98
  5.3.1 抓取标签间的内容 98
  5.3.2 抓取标签中的参数 100
  5.3.3 字符串处理及替换 102
 5.4 阶段案例 102
 习 题 105

第6章 XPath和lxml解析库 106
 6.1 lxml基础 106
  6.1.1 安装lxml 106
  6.1.2 操作XML 107
  6.1.3 操作HTML 108
  6.1.4 操作字符串 109
 6.2 XPATH语法 110
 6.3 lxml库的基本使用 111
  6.3.1 选取所有节点 112
  6.3.2 选取子节点 114
  6.3.3 属性匹配与获取 115
  6.3.4 选取父节点 116
  6.3.5 多属性匹配 116
  6.3.6 按序选择节点 117
  6.3.7 在Chrome中自动获得XPath代码 118
 6.4 阶段案例 120
 习 题 122

第7章 解析库BeautifulSoup4 124
 7.1 BeautifulSoup概述 124
  7.1.1 BeautifulSoup4安装 124
  7.1.2 选择解析器 125
 7.2 BeautifulSoup对象 126
  7.2.1 使用Beautiful Soup解析HTML代码 126
  7.2.2 节点选择器 126
 7.3 方法和css选择器 135
  7.3.1 方法选择器 135
  7.3.2 CSS选择器 139
 7.4 阶段案例 144
 习 题 146

第8章 多线程爬虫 148
 8.1 线程和进程 148
  8.1.1 进程 148
  8.1.2 线程 148
 8.2 Python与线程 149
  8.2.1 使用单线程执行程序 149
  8.2.2 使用多线程执行程序 150
  8.2.3 为线程函数传递参数 151
  8.2.4 线程和锁 152
 8.3 高级线程模块(threading) 153
  8.3.1 Thread类与线程函数 155
  8.3.2 Thread类与线程对象 156
  8.3.3 从Thread类继承 157
  8.3.4 线程同步 159
  8.3.5 生产者-消费者问题与queue模块 161
 8.4 多进程 163
  8.4.1 创建子进程 163
  8.4.2 将进程定义为类 164
  8.4.3 创建多个进程 165
 8.5 阶段案例 166
 习 题 172
案例3 头条前高管反噬被判刑 173

第4部分 数据存储
第9章 文件存储 177
 9.1 操作文件 177
  9.1.1 读文件和写文件 178
  9.1.2 读行和写行 180
  9.1.3 使用FileInput对象读取文件 182
 9.2 读写XML文件 183
  9.2.1 读取与搜索XML文件 183
  9.2.2 字典转换为XML字符串 184
  9.2.3 XML字符串转换为字典 186
 9.3 读写JSON文件 187
  9.3.1 JSON字符串与字典互相转换 187
  9.3.2 将JSON字符串转换为XML字符串 189
  9.3.3 将JSON数据转储到文件中 190
  9.3.4 从文件中读取JSON 191
 9.4 读写CSV文件 191
  9.4.1 写入CSV文件 191
  9.4.2 读取CSV文件 194
 9.5 阶段案例 194
 习 题 197

第10章 数据库存储 198
 10.1 MySQL数据库 198
  10.1.1 安装MySQL数据库 198
  10.1.2 在Python中使用MySQL 200
 10.2 MongoDB数据库 202
  10.2.1 安装MongoDB数据库 203
  10.2.2 安装图形化管理工具Robo3T 205
  10.2.3 PyMongo的安装与使用 207
 10.3 Redis数据库 213
  10.3.1 Redis的搭建和使用 213
  10.3.2 Redis-py的安装与使用 216
 10.4 阶段案例 217
 习 题 220
案例4 为泄愤,利用“爬虫”删数据 221

参考文献 223
  • 课件《Python网络爬虫快速入门》

    课程: Python网络爬虫快速入门 类型: zip 大小:42.85MB上传时间: 2022-07-28 10:47:06

  • 课程思政-授课计划《Python网络爬虫快速入门》

    课程: Python网络爬虫快速入门 类型: rar 大小:32.46 KB上传时间: 2022-07-28 10:47:07

  • 课后习题参考答案《Python网络爬虫快速入门》

    课程: Python网络爬虫快速入门 类型: rar 大小:15.27 KB上传时间: 2022-07-28 10:47:07

  • 源代码《Python网络爬虫快速入门》

    课程: Python网络爬虫快速入门 类型: rar 大小:60.95 KB上传时间: 2022-07-28 10:47:07

全部下载