本书介绍了如何使用Python编写网络爬虫批量采集互联网数据,如何处理与保存采集到的信息,以及如何从众多纷乱的数据中提取到真正有用的信息。并介绍了几种常用的数据可视化工具。
第1章 拍档:网络爬虫与Python语言
1.1 什么是网络爬虫 1
1.1.1 网络爬虫的定义 2
1.1.2 网络爬虫的工作流程 2
1.1.3 网络爬虫的分类 3
1.1.4 为什么选择用Python编写网络爬虫 4
1.1.5 编写爬虫的注意事项 4
1.2 Python环境配置 5
1.2.1 Python的安装 5
1.2.2 Python第三方库的安装 6
【示例1-1】使用包管理器安装科学计算库numpy 6
【示例1-2】源代码方式安装xlrd库(使用setup.py文件) 7
【示例1-3】源代码方式安装xlrd库(使用whl文件) 8
1.2.3 Python开发工具的选择 8
【示例1-4】将文本编辑器配置成Python开发工具(以Notepad++为例) 12
1.3 Python基本语法 13
1.3.1 Python书写规则 13
1.3.2 Python基本数据类型 18
【示例1-5】以列表a = ['a','a','b','c','d','d','e']为例讲解List的基本操作 21
【示例1-6】以列表a = [1,2,3,4,5,6,7,8]为例讲解数据型列表的属性分析 23
【示例1-7】以字典a为例,讲解字典的基本操作 25
1.3.3 Python独有数据生成方式:推导式 29
1.3.4 函数 30
【示例1-8】局部变量与全局变量重名的运行结果与解决方案 31
1.3.5 条件与循环 34
1.3.6 类与对象 35
【示例1-9】请输出学生信息中某学生的班级、姓名和总分数 35
1.3.7 Python 2代码转为Python 3代码 36
【示例1-10】以文件test.py为例,介绍Python 2代码到Python 3代码的转化 37
第2章 应知应会:网络爬虫基本知识
2.1 网页的构成 38
2.1.1 HTML基本知识 39
2.1.2 网页中各元素的排布 46
【示例2-1】以新浪博客文本为例,学习各类元素的排布规则 46
2.2 正则表达式 48
2.2.1 正则表达式简介 48
2.2.2 Python语言中的正则表达式 49
【示例2-2】正则表达式应用中,当匹配次数达到10万时,预先编译对正则表达式性能的提升 51
2.2.3 综合实例:正则表达式的实际应用——在二手房网站中提取有用信息 52
2.3 汉字编码问题 54
2.3.1 常见编码简介 54
2.3.2 常用编程环境的默认编码 55
2.3.3 网页编码 56
2.3.4 编码转换 56
2.4 网络爬虫的行为准则 57
2.4.1 遵循Robots协议 57
2.4.2 网络爬虫的合法性 59
第3章 静态网页爬取
3.1 Python常用网络库 61
3.1.1 urllib库 62
【示例3-1】从众多代理IP中选取可用的IP 63
【示例3-2】百度搜索“Python”url演示Parse模块应用 66
3.1.2 综合实例:批量获取高清壁纸 68
3.1.3 requests库 71
【示例3-3】用requests实现豆瓣网站模拟登录 72
3.1.4 综合实例:爬取历史天气数据预测天气变化 74
3.2 网页解析工具 77
3.2.1 更易上手:BeautifulSoup 77
【示例3-4】解析HTML文档(以豆瓣读书《解忧杂货店》为例) 78
3.2.2 更快速度:lxml 81
3.2.3 BeautifulSoup与lxml对比 82
【示例3-5】爬取豆瓣读书中近5年出版的评分7分以上的漫画 82
【示例3-6】BeautifulSoup和lxml解析同样网页速度测试(基于网易新闻页) 85
3.2.4 综合实例:在前程无忧中搜索并抓取不同编程语言岗位的平均收入 85
第4章 动态网页爬取
4.1 AJAX技术 89
4.1.1 获取AJAX请求 90
4.1.2 综合实例:抓取简书百万用户个人主页 91
4.2 Selenium操作浏览器 97
4.2.1 驱动常规浏览器 97
4.2.2 驱动无界面浏览器 100
4.2.3 综合实例:模拟登录新浪微博并短视频 101
4.3 爬取移动端数据 103 <