零基础学Python网络爬虫(升级版)(全彩印刷) | PDF下载|ePub下载
类别: 计算机
作者:[美] Gayle Laakmann McDowell
出版社: 人民邮电出版社
原作名: Cracking the coding interview:150 programming questions and solutions,fifth edition
译者:李琳骁/漆犇
出版年: 2013-11
页数: 372
定价: 59.00元
装帧: 平装
ISBN: 9787115332912
出版社: 人民邮电出版社
原作名: Cracking the coding interview:150 programming questions and solutions,fifth edition
译者:李琳骁/漆犇
出版年: 2013-11
页数: 372
定价: 59.00元
装帧: 平装
ISBN: 9787115332912
内容简介 · · · · · ·
《零基础学 Python 网络爬虫(升级版)》从学习与应用的角度出发,帮助读者快速掌握网络爬虫的各项技能。全书共 15 章,包括初识网络爬虫、请求模块 Urllib、请求模块 requests、高级网络请求模块、正则表达式、XPath 解析、解析数据的 Beautiful Soup 模块、多线程与多进程爬虫、数据处理与存储、App 抓包工具、识别验证码、Scrapy 爬虫框架、爬取编程 e 学网视频、爬取某网站的手机数据, 以及爬取北、上、广、深租房信息。书中所有知识都结合具体实例进行讲解,设计的程序代码给出了详细的注释,可以使读者轻松领会 Python 网络爬虫程序开发的精髓,快速提高开发技能。
作者简介 · · · · · ·
明日科技是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司。其编写的教程既注重选取软件开发中的必需、常用内容,又注重内容的易学易用以及相关知识的拓展,深受读者喜爱。同时,其编写的教程多次荣获”全行业优秀畅销品种””中国大学出版社图书奖优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。
目录 · · · · · ·
第 1 章 初识网络爬虫
e 学码:5 个
1.1 网络爬虫概述
1.2 网络爬虫的分类
1.3 网络爬虫的基本原理
1.4 Windows下搭建开发环境
1.4.1 安装Anaconda
1.4.2 PyCharm的下载与安装
1.4.3 配置PyCharm
1.4.4 测试PyCharm
第 2 章 请求模块 Urllib
精彩实例:22 个 e 学码:5 个
2.1 Urllib简介
2.2 使用urlopen方法发送请求
2.2.1 发送GET请求
实例2.1 演示常用的方法与属性
2.2.2 发送POST请求
实例2.2 发送POST请求
2.2.3 设置网络超时
实例2.3 处理网络超时
2.3 复杂的网络请求
2.3.1 设置请求头
实例2.4 设置请求头
2.3.2 Cookie的获取与设置
实例2.5 模拟登录
实例2.6 获取Cookie
实例2.7 保存Cookie文件
实例2.8 使用Cookie信息登录并获取登录后页面中的信息
2.3.3 设置代理IP地址
实例2.9 设置代理IP地址
2.4 异常处理
实例2.10 处理URLError异常
实例2.11 使用HTTPError类捕获异常
实例2.12 双重异常的捕获
2.5 解析链接
2.5.1 拆分URL
实例2.13 使用urlparse方法拆分URL
实例2.14 使用urlsplit方法拆分URL
2.5.2 组合URL
实例2.15 使用urlunparse方法组合URL
实例2.16 使用urlunsplit方法组合URL
2.5.3 连接URL
实例2.17 使用urljoin方法连接URL
2.5.4 URL的编码与解码
实例2.18 使用urlencode方法编码请求
参数
实例2.19 使用quote方法编码字符串
参数
实例2.20 使用unquote方法解码请求
参数
2.5.5 URL参数的转换
实例2.21 使用parse_qs方法将参数转换
为字典类型
实例2.22 使用parse_qsl方法将参数转换为元组所组成的列表
第 3 章 请求模块 requests
精彩实例:13 个 e 学码:6 个
3.1 请求方式
3.1.1 GET请求
实例3.1 实现不带参数的GET网络请求
3.1.2 对响应结果进行utf-8编码
实例3.2 获取请求地址所对应的网页源码
3.1.3 爬取二进制数据
实例3.3 下载某网站首页中的logo图片
3.1.4 GET(带参)请求
3.1.5 POST请求
实例3.4 实现POST请求
3.2 复杂的网络请求
3.2.1 添加请求头
实例3.5 添加请求头
3.2.2 验证Cookie
实例3.6 通过验证Cookie模拟网页登录
3.2.3 会话请求
实例3.7 实现会话请求
3.2.4 验证请求
实例3.8 验证请求
3.2.5 网络超时与异常
实例3.9 演示网络超时与异常
实例3.10 识别网络异常的分类
3.2.6 上传文件
实例3.11 上传图片文件
3.3 代理服务
3.3.1 代理的应用
实例3.12 通过代理发送请求
3.3.2 获取免费的代理IP地址
3.3.3 检测代理IP地址是否有效
实例3.13 检测代理IP地址是否有效
第 4 章 高级网络请求模块
精彩实例:1 个 e 学码:5 个
4.1 requests-cache的安装与测试
4.2 缓存的应用
4.3 强大的requests-HTML模块
4.3.1 使用requests-HTML实现网络请求. 51 4.3.2 数据的提取
实例4.1 爬取即时新闻
第 5 章 正则表达式
精彩实例:8 个 e 学码:2 个
5.1 使用search方法匹配字符串
5.1.1 获取第一个指定字符开头的字符串
实例5.1 搜索第一个“mr_”开头的字符串
5.1.2 可选匹配
实例5.2 可选匹配字符串中的内容
5.1.3 匹配字符串边界
实例5.3 使用“\b”匹配字符串的边界
5.2 使用findall方法匹配字符串
5.2.1 匹配所有指定字符开头的字符串
实例5.4 匹配所有以“mr_”开头的字符串
5.2.2 贪婪匹配
实例5.5 使用“.*”实现贪婪匹配字符串
5.2.3 非贪婪匹配
实例5.6 使用“.*?”实现非贪婪匹配字符串
5.3 字符串处理
5.3.1 替换字符串
实例5.7 使用sub方法替换字符串
5.3.2 分割字符串
实例5.8 使用split方法分割字符串.
5.4 案例:爬取某音乐热歌榜
5.4.1 分析数据
5.4.2 实现爬虫
第 6 章 XPath 解析
精彩实例:15 个 e 学码:2 个
6.1 XPath概述
6.2 XPath的解析操作
6.2.1 解析HTML
实例6.1 解析本地的HTML文件
实例6.2 解析字符串类型的HTML代码
实例6.3 解析服务器返回的HTML代码
6.2.2 获取所有节点
实例6.4 获取HTML代码的所有节点
6.2.3 获取子节点
实例6.5 获取一个节点中的子节点
实例6.6 获取子孙节点
6.2.4 获取父节点
实例6.7 获取一个节点的父节点
6.2.5 获取文本
实例6.8 获取HTML代码中的文本
6.2.6 属性的单值匹配
实例6.9 使用“[@. ]”实现节点属性的
匹配
实例6.10 属性多值匹配
实例6.11 一个节点中多个属性的匹配.
6.2.7 获取属性
实例6.12 获取属性所对应的值
6.2.8 按序获取属性值
实例6.13 使用索引按序获取属性对应的值
6.2.9 使用节点轴获取节点内容
实例6.14 使用节点轴的方式获取节点内容
6.3 案例:爬取某网站电影Top250
6.3.1 分析请求地址
6.3.2 分析信息位置
6.3.3 爬虫代码的实现
实例6.15 编写爬取某网站电影
Top250的代码
第 7 章 解析数据的 Beautiful Soup 模块82
精彩实例:13 个 e 学码:3 个
7.1 使用Beautiful Soup解析数据
7.1.1 Beautiful Soup的安装
7.1.2 解析器
7.1.3 Beautiful Soup的简单应用
实例7.1 解析HTML代码
7.2 获取节点内容
7.2.1 获取节点对应的代码
实例7.2 获取节点对应的代码
7.2.2 获取节点属性
实例7.3 获取节点属性
7.2.3 获取节点包含的文本内容
7.2.4 嵌套获取节点内容
实例7.4 嵌套获取节点内容
7.2.5 关联获取
实例7.5 获取子节点
实例7.6 获取子孙节点
实例7.7 获取父节点
实例7.8 获取兄弟节点
7.3 使用方法获取内容
7.3.1 find_all方法——获取所有符合
条件的内容
实例7.9 find_all(name)方法通过节点名称获取内容
实例7.10 find_all(attrs)方法通过指定属性获取内容
实例7.11 find_all(text)方法获取节点中的文本
7.3.2 find方法——获取第一个匹配的节点内容
实例7.12 获取第一个匹配的节点内容
7.3.3 其他方法
7.4 CSS选择器
实例7.13 使用CSS选择器获取节点内容 97
第 8 章 多线程与多进程爬虫
精彩实例:11 个 e 学码:6 个
8.1 进程与线程
8.1.1 什么是进程
8.1.2 什么是线程
8.2 创建线程
8.2.1 使用threading模块创建线程
实例8.1 使用threading模块创建线程
8.2.2 使用Thread子类创建线程
实例8.2 使用Thread子类创建线程
8.3 线程间通信
实例8.3 验证线程之间是否可以共享信息
8.3.1 什么是互斥锁
8.3.2 使用互斥锁
实例8.4 使用多线程的互斥锁
8.3.3 使用Queue在线程间通信
实例8.5 使用Queue在线程间通信
8.4 创建进程的常用方式
8.4.1 使用multiprocessing模块创建进程
实例8.6 演示Process类的方法和属性的使用
8.4.2 使用Process子类创建进程
实例8.7 使用Process子类创建多个进程
8.4.3 使用Pool进程池创建进程
实例8.8 使用进程池创建多进程
8.5 进程间通信
实例8.9 验证进程之间能否直接共享信息
8.5.1 队列简介
8.5.2 多进程队列的使用
实例8.10 多进程队列的使用
8.5.3 使用队列在进程间通信
实例8.11 使用队列在进程间通信
第 9 章 数据处理与存储
精彩实例:8 个 e 学码:7 个
9.1 数据处理
9.1.1 pandas数据结构
9.1.2 数据的增、删、改、查
9.1.3 NaN数据处理
9.1.4 删除重复数据
9.2 文件的存取
9.2.1 TXT基本文件操作
实例9.1 TXT文件存储
实例9.2 读取message.txt文件中的
前9个字符
实例9.3 从文件的第11个字符开始
读取8个字符
实例9.4 读取一行
实例9.5 读取全部行
9.2.2 存取CSV文件
9.2.3 存取Excel文件
9.3 SQLite数据库
9.3.1 创建数据库文件
9.3.2 操作SQLite
9.4 MySQL数据库
9.4.2 安装MySQL服务器
实例9.6 连接数据库
实例9.7 创建数据表
实例9.8 操作数据表
第 10 章 App 抓包工具
e 学码:6 个
10.1 Charles工具的下载与安装
10.2 SSL证书的安装
10.2.1 安装PC端证书
10.2.2 设置代理
10.2.3 配置网络
10.2.4 安装手机端证书
第 11 章 识别验证码
精彩实例:4 个 e 学码:5 个
11.1 字符验证码
11.1.1 搭建OCR环境
11.1.2 下载验证码图片
实例11.1 下载验证码图片
11.1.3 识别验证码
实例11.2 识别验证码
11.2 第三方验证码识别
实例11.3 第三方打码平台
11.3 滑动拼图验证码
实例11.4 滑动拼图验证码
第 12 章 Scrapy 爬虫框架
精彩实例:8 个 e 学码:8 个
12.1 了解Scrapy爬虫框架
12.2 Scrapy的基本应用
12.2.1 创建Scrapy项目
12.2.2 创建爬虫
实例12.1 爬取网页代码并保存HTML
文件
12.2.3 获取数据
实例12.2 使用XPath表达式获取多条信息
实例12.3 翻页提取数据
实例12.4 包装结构化数据
12.2.4 将爬取的数据保存为多种格式的
文件
12.3 编写Item Pipeline
12.3.1 Item Pipeline的核心方法
12.3.2 将信息存储到数据库
实例12.5 将数据存储到数据库
12.4 自定义中间件
12.4.1 设置随机请求头
实例12.6 设置随机请求头
12.4.2 设置Cookie
12.4.3 设置代理IP地址
实例12.7 随机代理中间件
12.5 文件下载
实例12.8 下载手机商品图片
第 13 章 爬取编程 e 学网视频
精彩实例:8 个 e 学码:8 个
13.1 案例效果预览
13.2 案例准备
13.3 业务流程
13.4 实现过程
13.4.1 查找视频页面
13.4.2 分析视频地址
13.4.3 实现视频下载
第 14 章 爬取某网站的手机数据
14.1 案例效果预览
14.2 案例准备
14.3 业务流程
14.4 实现过程
14.4.1 分析手机主页中的每页地址
14.4.2 分析每个手机的详情页地址
14.4.3 确认详情页手机数据的位置
14.4.4 创建MySQL数据表
14.4.5 编写爬虫程序
第 15 章 爬取北、上、广、深租房信息
15.1 案例效果预览
15.2 案例准备
15.3 业务流程
15.4 实现过程
15.4.1 获取租房信息总页码
15.4.2 确认数据所在的标签位置
15.4.3 编写爬虫程序提取数据
· · · · · ·
e 学码:5 个
1.1 网络爬虫概述
1.2 网络爬虫的分类
1.3 网络爬虫的基本原理
1.4 Windows下搭建开发环境
1.4.1 安装Anaconda
1.4.2 PyCharm的下载与安装
1.4.3 配置PyCharm
1.4.4 测试PyCharm
第 2 章 请求模块 Urllib
精彩实例:22 个 e 学码:5 个
2.1 Urllib简介
2.2 使用urlopen方法发送请求
2.2.1 发送GET请求
实例2.1 演示常用的方法与属性
2.2.2 发送POST请求
实例2.2 发送POST请求
2.2.3 设置网络超时
实例2.3 处理网络超时
2.3 复杂的网络请求
2.3.1 设置请求头
实例2.4 设置请求头
2.3.2 Cookie的获取与设置
实例2.5 模拟登录
实例2.6 获取Cookie
实例2.7 保存Cookie文件
实例2.8 使用Cookie信息登录并获取登录后页面中的信息
2.3.3 设置代理IP地址
实例2.9 设置代理IP地址
2.4 异常处理
实例2.10 处理URLError异常
实例2.11 使用HTTPError类捕获异常
实例2.12 双重异常的捕获
2.5 解析链接
2.5.1 拆分URL
实例2.13 使用urlparse方法拆分URL
实例2.14 使用urlsplit方法拆分URL
2.5.2 组合URL
实例2.15 使用urlunparse方法组合URL
实例2.16 使用urlunsplit方法组合URL
2.5.3 连接URL
实例2.17 使用urljoin方法连接URL
2.5.4 URL的编码与解码
实例2.18 使用urlencode方法编码请求
参数
实例2.19 使用quote方法编码字符串
参数
实例2.20 使用unquote方法解码请求
参数
2.5.5 URL参数的转换
实例2.21 使用parse_qs方法将参数转换
为字典类型
实例2.22 使用parse_qsl方法将参数转换为元组所组成的列表
第 3 章 请求模块 requests
精彩实例:13 个 e 学码:6 个
3.1 请求方式
3.1.1 GET请求
实例3.1 实现不带参数的GET网络请求
3.1.2 对响应结果进行utf-8编码
实例3.2 获取请求地址所对应的网页源码
3.1.3 爬取二进制数据
实例3.3 下载某网站首页中的logo图片
3.1.4 GET(带参)请求
3.1.5 POST请求
实例3.4 实现POST请求
3.2 复杂的网络请求
3.2.1 添加请求头
实例3.5 添加请求头
3.2.2 验证Cookie
实例3.6 通过验证Cookie模拟网页登录
3.2.3 会话请求
实例3.7 实现会话请求
3.2.4 验证请求
实例3.8 验证请求
3.2.5 网络超时与异常
实例3.9 演示网络超时与异常
实例3.10 识别网络异常的分类
3.2.6 上传文件
实例3.11 上传图片文件
3.3 代理服务
3.3.1 代理的应用
实例3.12 通过代理发送请求
3.3.2 获取免费的代理IP地址
3.3.3 检测代理IP地址是否有效
实例3.13 检测代理IP地址是否有效
第 4 章 高级网络请求模块
精彩实例:1 个 e 学码:5 个
4.1 requests-cache的安装与测试
4.2 缓存的应用
4.3 强大的requests-HTML模块
4.3.1 使用requests-HTML实现网络请求. 51 4.3.2 数据的提取
实例4.1 爬取即时新闻
第 5 章 正则表达式
精彩实例:8 个 e 学码:2 个
5.1 使用search方法匹配字符串
5.1.1 获取第一个指定字符开头的字符串
实例5.1 搜索第一个“mr_”开头的字符串
5.1.2 可选匹配
实例5.2 可选匹配字符串中的内容
5.1.3 匹配字符串边界
实例5.3 使用“\b”匹配字符串的边界
5.2 使用findall方法匹配字符串
5.2.1 匹配所有指定字符开头的字符串
实例5.4 匹配所有以“mr_”开头的字符串
5.2.2 贪婪匹配
实例5.5 使用“.*”实现贪婪匹配字符串
5.2.3 非贪婪匹配
实例5.6 使用“.*?”实现非贪婪匹配字符串
5.3 字符串处理
5.3.1 替换字符串
实例5.7 使用sub方法替换字符串
5.3.2 分割字符串
实例5.8 使用split方法分割字符串.
5.4 案例:爬取某音乐热歌榜
5.4.1 分析数据
5.4.2 实现爬虫
第 6 章 XPath 解析
精彩实例:15 个 e 学码:2 个
6.1 XPath概述
6.2 XPath的解析操作
6.2.1 解析HTML
实例6.1 解析本地的HTML文件
实例6.2 解析字符串类型的HTML代码
实例6.3 解析服务器返回的HTML代码
6.2.2 获取所有节点
实例6.4 获取HTML代码的所有节点
6.2.3 获取子节点
实例6.5 获取一个节点中的子节点
实例6.6 获取子孙节点
6.2.4 获取父节点
实例6.7 获取一个节点的父节点
6.2.5 获取文本
实例6.8 获取HTML代码中的文本
6.2.6 属性的单值匹配
实例6.9 使用“[@. ]”实现节点属性的
匹配
实例6.10 属性多值匹配
实例6.11 一个节点中多个属性的匹配.
6.2.7 获取属性
实例6.12 获取属性所对应的值
6.2.8 按序获取属性值
实例6.13 使用索引按序获取属性对应的值
6.2.9 使用节点轴获取节点内容
实例6.14 使用节点轴的方式获取节点内容
6.3 案例:爬取某网站电影Top250
6.3.1 分析请求地址
6.3.2 分析信息位置
6.3.3 爬虫代码的实现
实例6.15 编写爬取某网站电影
Top250的代码
第 7 章 解析数据的 Beautiful Soup 模块82
精彩实例:13 个 e 学码:3 个
7.1 使用Beautiful Soup解析数据
7.1.1 Beautiful Soup的安装
7.1.2 解析器
7.1.3 Beautiful Soup的简单应用
实例7.1 解析HTML代码
7.2 获取节点内容
7.2.1 获取节点对应的代码
实例7.2 获取节点对应的代码
7.2.2 获取节点属性
实例7.3 获取节点属性
7.2.3 获取节点包含的文本内容
7.2.4 嵌套获取节点内容
实例7.4 嵌套获取节点内容
7.2.5 关联获取
实例7.5 获取子节点
实例7.6 获取子孙节点
实例7.7 获取父节点
实例7.8 获取兄弟节点
7.3 使用方法获取内容
7.3.1 find_all方法——获取所有符合
条件的内容
实例7.9 find_all(name)方法通过节点名称获取内容
实例7.10 find_all(attrs)方法通过指定属性获取内容
实例7.11 find_all(text)方法获取节点中的文本
7.3.2 find方法——获取第一个匹配的节点内容
实例7.12 获取第一个匹配的节点内容
7.3.3 其他方法
7.4 CSS选择器
实例7.13 使用CSS选择器获取节点内容 97
第 8 章 多线程与多进程爬虫
精彩实例:11 个 e 学码:6 个
8.1 进程与线程
8.1.1 什么是进程
8.1.2 什么是线程
8.2 创建线程
8.2.1 使用threading模块创建线程
实例8.1 使用threading模块创建线程
8.2.2 使用Thread子类创建线程
实例8.2 使用Thread子类创建线程
8.3 线程间通信
实例8.3 验证线程之间是否可以共享信息
8.3.1 什么是互斥锁
8.3.2 使用互斥锁
实例8.4 使用多线程的互斥锁
8.3.3 使用Queue在线程间通信
实例8.5 使用Queue在线程间通信
8.4 创建进程的常用方式
8.4.1 使用multiprocessing模块创建进程
实例8.6 演示Process类的方法和属性的使用
8.4.2 使用Process子类创建进程
实例8.7 使用Process子类创建多个进程
8.4.3 使用Pool进程池创建进程
实例8.8 使用进程池创建多进程
8.5 进程间通信
实例8.9 验证进程之间能否直接共享信息
8.5.1 队列简介
8.5.2 多进程队列的使用
实例8.10 多进程队列的使用
8.5.3 使用队列在进程间通信
实例8.11 使用队列在进程间通信
第 9 章 数据处理与存储
精彩实例:8 个 e 学码:7 个
9.1 数据处理
9.1.1 pandas数据结构
9.1.2 数据的增、删、改、查
9.1.3 NaN数据处理
9.1.4 删除重复数据
9.2 文件的存取
9.2.1 TXT基本文件操作
实例9.1 TXT文件存储
实例9.2 读取message.txt文件中的
前9个字符
实例9.3 从文件的第11个字符开始
读取8个字符
实例9.4 读取一行
实例9.5 读取全部行
9.2.2 存取CSV文件
9.2.3 存取Excel文件
9.3 SQLite数据库
9.3.1 创建数据库文件
9.3.2 操作SQLite
9.4 MySQL数据库
9.4.2 安装MySQL服务器
实例9.6 连接数据库
实例9.7 创建数据表
实例9.8 操作数据表
第 10 章 App 抓包工具
e 学码:6 个
10.1 Charles工具的下载与安装
10.2 SSL证书的安装
10.2.1 安装PC端证书
10.2.2 设置代理
10.2.3 配置网络
10.2.4 安装手机端证书
第 11 章 识别验证码
精彩实例:4 个 e 学码:5 个
11.1 字符验证码
11.1.1 搭建OCR环境
11.1.2 下载验证码图片
实例11.1 下载验证码图片
11.1.3 识别验证码
实例11.2 识别验证码
11.2 第三方验证码识别
实例11.3 第三方打码平台
11.3 滑动拼图验证码
实例11.4 滑动拼图验证码
第 12 章 Scrapy 爬虫框架
精彩实例:8 个 e 学码:8 个
12.1 了解Scrapy爬虫框架
12.2 Scrapy的基本应用
12.2.1 创建Scrapy项目
12.2.2 创建爬虫
实例12.1 爬取网页代码并保存HTML
文件
12.2.3 获取数据
实例12.2 使用XPath表达式获取多条信息
实例12.3 翻页提取数据
实例12.4 包装结构化数据
12.2.4 将爬取的数据保存为多种格式的
文件
12.3 编写Item Pipeline
12.3.1 Item Pipeline的核心方法
12.3.2 将信息存储到数据库
实例12.5 将数据存储到数据库
12.4 自定义中间件
12.4.1 设置随机请求头
实例12.6 设置随机请求头
12.4.2 设置Cookie
12.4.3 设置代理IP地址
实例12.7 随机代理中间件
12.5 文件下载
实例12.8 下载手机商品图片
第 13 章 爬取编程 e 学网视频
精彩实例:8 个 e 学码:8 个
13.1 案例效果预览
13.2 案例准备
13.3 业务流程
13.4 实现过程
13.4.1 查找视频页面
13.4.2 分析视频地址
13.4.3 实现视频下载
第 14 章 爬取某网站的手机数据
14.1 案例效果预览
14.2 案例准备
14.3 业务流程
14.4 实现过程
14.4.1 分析手机主页中的每页地址
14.4.2 分析每个手机的详情页地址
14.4.3 确认详情页手机数据的位置
14.4.4 创建MySQL数据表
14.4.5 编写爬虫程序
第 15 章 爬取北、上、广、深租房信息
15.1 案例效果预览
15.2 案例准备
15.3 业务流程
15.4 实现过程
15.4.1 获取租房信息总页码
15.4.2 确认数据所在的标签位置
15.4.3 编写爬虫程序提取数据
· · · · · ·
发表回复
要发表评论,您必须先登录。