网络爬虫,又被称为网页蜘蛛、网络机器人,是一种按照一定的规则,自动地抓取互联网信息的程序或者脚本。很多站点,尤其是搜索引擎,都使用爬虫(它主要用于提供访问页面的一个副本)提供新的数据,然后,搜索引擎对得到的页面进行索引,以便快速访问。爬虫也可以用来在Web上自动执行一些任务,例如检查链接、确认HTML代码;还可以用来抓取网页上某种特定类型的信息,例如电子邮件地址(通常用于垃圾邮件)。因此,网络爬虫技术对互联网企业具有很大的应用价值。
本书从Python 3.6.4基础的部分讲起,延伸到Python流行的应用方向之一 网络爬虫,讲解目前流行的几种Python爬虫框架,并给出详细示例,以帮助读者学习Python并开发出符合自己要求的网络爬虫。
本书从Python 3.6.4的安装开始,详细讲解了Python从简单程序延伸到Python网络爬虫的全过程。本书从实战出发,根据不同的需求选取不同的爬虫,有针对性地讲解了几种Python网络爬虫。
本书共10章,涵盖的内容有Python3.6语言的基本语法、Python常用IDE的使用、Python第三方模块的导入使用、Python爬虫常用模块、Scrapy爬虫、Beautiful Soup爬虫、Mechanize模拟浏览器和Selenium模拟浏览器、Pyspider爬虫框架、爬虫与反爬虫。本书所有源代码已上传网盘供读者下载。
本书内容丰富,实例典型,实用性强。适合Python网络爬虫初学者、Python数据分析与挖掘技术初学者,以及高等院校和培训学校相关专业的师生阅读。
目 录
第1章 Python环境配置 1
1.1 Python简介 1
1.1.1 Python的历史由来 1
1.1.2 Python的现状 2
1.1.3 Python的应用 2
1.2 Python 3.6.4开发环境配置 4
1.2.1 Windows下安装Python 4
1.2.2 Windows下安装配置pip 9
1.2.3 Linux下安装Python 10
1.2.4 Linux下安装配置pip 13
1.2.5 永远的hello world 16
1.3 本章小结 21
第2章 Python基础 22
2.1 Python变量类型 22
2.1.1 数字 22
2.1.2 字符串 25
2.1.3 列表 29
2.1.4 元组 34
2.1.5 字典 37
2.2 Python语句 41
2.2.1 条件语句——if else 41
2.2.2 有限循环——for 42
2.2.3 无限循环——while 44
2.2.4 中断循环——continue、break 46
2.2.5 异常处理——try except 48
2.2.6 导入模块——import 52
2.3 函数和类 56
2.3.1 函数 56
2.3.2 类 62
2.4 Python内置函数 68
2.4.1 常用内置函数 68
2.4.2 高级内置函数 69
2.5 Python代码格式 74
2.5.1 Python代码缩进 74
2.5.2 Python命名规则 75
2.5.3 Python代码注释 76
2.6 Python调试 79
2.6.1 Windows下IDLE调试 79
2.6.2 Linux下pdb调试 82
2.7 本章小结 87
第3章 简单的Python脚本 88
3.1 九九乘法表 88
3.1.1 Project分析 88
3.1.2 Project实施 88
3.2 斐波那契数列 90
3.2.1 Project分析 90
3.2.2 Project实施 90
3.3 概率计算 91
3.3.1 Project分析 91
3.3.2 Project实施 92
3.4 读写文件 93
3.4.1 Project分析 93
3.4.2 Project实施 94
3.5 类的继承与重载 96
3.5.1 Project 1分析 96
3.5.2 Project 1实施 98
3.5.3 Project 2分析 100
3.5.4 Project 2实施 101
3.6 多线程 107
3.6.1 Project 1分析 107
3.6.2 Project 1实施 109
3.6.3 Project 2分析 112
3.6.4 Project 2实施 115
3.7 本章小结 117
第4章 Python爬虫常用模块 118
4.1 网络爬虫技术核心 118
4.1.1 网络爬虫实现原理 118
4.1.2 爬行策略 119
4.1.3 身份识别 119
4.2 Python 3标准库之urllib.request模块 120
4.2.1 urllib.request请求返回网页 120
4.2.2 urllib.request使用代理访问网页 122
4.2.3 urllib.request修改header 125
4.3 Python 3标准库之logging模块 129
4.3.1 简述logging模块 129
4.3.2 自定义模块myLog 133
4.4 re模块(正则表达式) 135
4.4.1 re模块(正则表达式操作) 136
4.4.2 re模块实战 137
4.5 其他有用模块 139
4.5.1 sys模块(系统参数获取) 139
4.5.2 time模块(获取时间信息) 141
4.6 本章小结 144
第5章 Scrapy爬虫框架 145
5.1 安装Scrapy 145
5.1.1 Windows下安装Scrapy环境 145
5.1.2 Linux下安装Scrapy 146
5.1.3 vim编辑器 147
5.2 Scrapy选择器XPath和CSS 148
5.2.1 XPath选择器 148
5.2.2 CSS选择器 151
5.2.3 其他选择器 152
5.3 Scrapy爬虫实战一:今日影视 153
5.3.1 创建Scrapy项目 153
5.3.2 Scrapy文件介绍 155
5.3.3 Scrapy爬虫编写 157
5.4 Scrapy爬虫实战二:天气预报 164
5.4.1 项目准备 165
5.4.2 创建编辑Scrapy爬虫 166
5.4.3 数据存储到json 173
5.4.4 数据存储到MySQL 175
5.5 Scrapy爬虫实战三:获取代理 182
5.5.1 项目准备 182
5.5.2 创建编辑Scrapy爬虫 183
5.5.3 多个Spider 188
5.5.4 处理Spider数据 192
5.6 Scrapy爬虫实战四:糗事百科 194
5.6.1 目标分析 195
5.6.2 创建编辑Scrapy爬虫 195
5.6.3 Scrapy项目中间件——添加headers 196
5.6.4 Scrapy项目中间件——添加proxy 200
5.7 Scrapy爬虫实战五:爬虫攻防 202
5.7.1 创建一般爬虫 202
5.7.2 封锁间隔时间破解 206
5.7.3 封锁Cookies破解 206
5.7.4 封锁User-Agent破解 207
5.7.5 封锁IP破解 212
5.8 本章小结 215
第6章 Beautiful Soup爬虫 216
6.1 安装Beautiful Soup环境 216
6.1.1 Windows下安装Beautiful Soup 216
6.1.2 Linux下安装Beautiful Soup 217
6.1.3 最强大的IDE——Eclipse 218
6.2 Beautiful Soup解析器 227
6.2.1 bs4解析器选择 227
6.2.2 lxml解析器安装 227
6.2.3 使用bs4过滤器 229
6.3 bs4爬虫实战一:获取百度贴吧内容 234
6.3.1 目标分析 234
6.3.2 项目实施 236
6.3.3 代码分析 243
6.3.4 Eclipse调试 244
6.4 bs4爬虫实战二:获取双色球中奖信息 245
6.4.1 目标分析 246
6.4.2 项目实施 248
6.4.3 保存结果到Excel 251
6.4.4 代码分析 256
6.5 bs4爬虫实战三:获取起点小说信息 257
6.5.1 目标分析 257
6.5.2 项目实施 259
6.5.3 保存结果到MySQL 261
6.5.4 代码分析 265
6.6 bs4爬虫实战四:获取电影信息 266
6.6.1 目标分析 266