-
内容大纲
本书从零开始,循序渐进地介绍了目前最流行的网络爬虫框架Scrapy。即使你没有任何编程基础,阅读本书也不会有压力,因为书中有针对性地介绍了Pythom编程技术。另外,本书在讲解过程中以案例为导向,通过对案例的不断选代、优化,让读者加深对知识的理解,并通过14个项目案例,提高读者解决实际问题的能力。
本书共13章。其中,第1~4章为基础篇,介绍了Python基础、网络爬虫基础、Scrapy框架及基本的虫功能。第5~10章为进阶篇,介绍了如何将爬虫效据存储于MySOQL、MongoDB和Redis数据库中;如何实现异步AJAX数据的爬取;如何使用Setenium和Splash实现动态网站的爬取;如何实现模拟登录功能;如何突破反爬虫技术,以及如何实现文件和图片的下载。第11~13章为高级篇,介绍了使用Scrapy-Redis实现分布式爬虫;使用Scrapyd和Docker部署分布式爬虫:使用Gerapy管理分布式爬虫,并实现了一个抢票软件的综合项目。
本书适合爬虫初学者、爱好者及高校相关专业的学生阅读,也适合数据爬虫工程师作为参考读物,同时还适合答大院校和培训机构作为教材使用。 -
作者介绍
张涛,毕业于中国科学技术大学,获硕士学位。目前在科大讯飞公司从事人工智能教育培训与研究工作。加入科大讯飞公司之前,曾经在知名的日资企业任研发经理,负责日本大型证券系统的设计与开发。有7年大学课程改革与教学经验,主要研究方向为Python网络爬虫、数据分析和机器学习。 -
目录
前言
第1篇 基础篇
第1章 Python基础
1.1 Python简介
1.1.1 Python简史
1.1.2 搭建Python环境
1.1.3 安装PyCharm集成开发环境
1.2 Python基本语法
1.2.1 基本数据类型和运算
1.2.2 运算符和表达式
1.2.3 条件判断语句
1.2.4 循环语句
1.2.5 字符串
1.3 Python内置数据结构
1.3.1 列表
1.3.2 字典
1.3.3 元组
1.3.4 遍历对象集合
1.4 Python模块化设计
1.4.1 函数
1.4.2 迭代器(iterator)
1.4.3 生成器(Generator)
1.4.4 类和对象
1.4.5 文件与异常
1.5 本章小结
第2章 网络爬虫基础
2.1 HTTP基本原理
2.1.1 URL介绍
2.1.2 HTTP和HTTPS协议
2.1.3 HTTP请求(Request)
2.1.4 HTTP响应(Response)
2.2 网页基础
2.2.1 HTML文档
2.2.2 网页的结构
2.2.3 节点树及节点之间的关系
2.3 使用XPath提取网页信息
2.3.1 XPath介绍
2.3.2 XPath常用路径表达式
2.3.3 XPath带谓语的路径表达式
2.4 本章小结
第3章 Scrapy框架介绍
3.1 网络爬虫原理
3.1.1 爬虫执行的流程
3.2 Scrapy框架结构及执行流程
3.2.1 Scrapy框架结构
3.2.2 Scrapy执行流程
3.3 Scrapy安装
3.3.1 使用pip安装Scrapy
3.3.2 常见安装错误
3.3.3 验证安装
3.4 第一个网络爬虫
3.4.1 需求分析
3.4.2 创建项目
3.4.3 分析页面
3.4.4 实现Spider爬虫功能
3.4.5 运行爬虫
3.4.6 常见问题
3.5 本章小结
第4章 Scrapy网络爬虫基础
4.1 使用Spider提取数据
4.1.1 Spider组件介绍
4.1.2 重写start_requests()方法
4.1.3 Request对象
4.1.4 使用选择器提取数据
4.1.5 Response对象与XPath
4.1.6 Response对象与CSS
4.1.7 进一步了解Response对象
4.1.8 多页数据的爬取
4.2 使用Item封装数据
4.2.1 定义Item和Field
4.2.2 使用ItemLoader填充容器
4.3 使用Pipeline处理数据
4.3.1 Item Pipeline介绍
4.3.2 编写自己的Item Pipeline
4.3.3 启用Item Pipeline
4.3.4 多个Item Pipeline
4.3.5 保存为其他类型文件
4.4 项目案例:爬取链家网二手房信息
4.4.1 项目需求
4.4.2 技术分析
4.4.3 代码实现及解析
4.5 本章小结
第2篇 进阶篇
第5章 数据库存储
5.1 MySQL数据库
5.1.1 关系型数据库概述
5.1.2 下载和安装MySQL数据库
5.1.3 数据库管理工具Navicat
5.1.4 Python访问MySQL数据库
5.1.5 项目案例
5.2 MongoDB数据库
5.2.1 NoSQL概述
5.2.2 MongoDB介绍
5.2.3 MongoDB的下载和安装
5.2.4 Python访问MongoDB数据库
5.2.5 项目案例
5.3 Redis数据库
5.3.1 Redis的下载和安装
5.3.2 Python访问Redis
5.3.3 项目案例
5.4 本章小结
第6章 JavaScript与AJAX数据爬取
6.1 JavaScript简介
6.2 项目案例:爬取QQ音乐榜单歌曲
6.2.1 项目需求
6.2.2 技术分析
6.2.3 代码实现及解析
6.2.4 更常见的动态网页
6.3 AJAX简介
6.4 项目案例:爬取豆瓣电影信息
6.4.1 项目需求
6.4.2 技术分析
6.4.3 代码实现及解析
6.5 本章小结
第7章 动态渲染页面的爬取
7.1 Selenium实现动态页面爬取
7.1.1 Selenium安装
7.1.2 Selenium简单实现
7.1.3 Selenium语法
7.2 项目案例:爬取今日头条热点新闻
7.2.1 项目需求
7.2.2 技术分析
7.2.3 代码实现及解析
7.3 Splash实现动态页面爬取
7.3.1 Splash介绍
7.3.2 Splash环境搭建
7.3.3 Splash模块介绍
7.4 项目案例:爬取一号店中的iPhone手机信息
7.4.1 项目需求
7.4.2 技术分析
7.4.3 代码实现及解析
7.5 本章小结
第8章 模拟登录
8.1 模拟登录解析
8.1.1 登录过程解析
8.1.2 模拟登录的实现
8.2 验证码识别
8.2.1 使用OCR识别验证码
8.2.2 处理复杂验证码
8.2.3 五花八门的验证码
8.3 Cookie自动登录
8.3.1 Cookie介绍
8.3.2 获取Cookie的库—browsercookie
8.4 项目案例:爬取起点中文网某用户的书架信息
8.4.1 项目需求
8.4.2 技术分析
8.4.3 代码实现及解析
8.5 本章小结
第9章 突破反爬虫技术
9.1 反爬虫技术及突破措施
9.2 伪装成不同的浏览器
9.2.1 UserAgentMiddleware中间件介绍
9.2.2 实现伪装成随机浏览器
9.2.3 更简单的方法
9.3 使用HTTP代理服务器
9.3.1 HTTP代理服务器
9.3.2 获取免费代理
9.3.3 实现随机代理
9.4 本章小结
第10章 文件和图片下载
10.1 文件下载
10.1.1 FilesPipeline执行流程
10.2 项目案例:爬取seaborn案例源文件
10.2.1 项目需求
10.2.2 技术分析
10.2.3 代码实现及解析
10.2.4 更多功能
10.3 图片下载
10.4 项目案例:爬取摄图网图片
10.4.1 项目需求
10.4.2 技术分析
10.4.3 代码实现及解析
10.5 本章小结
第3篇 高级篇
第11章 Scrapy-Redis实现分布式爬虫
11.1 分布式爬虫原理
11.2 Scrapy-Redis实现分布式爬虫分析
11.2.1 实现分布式爬虫思路
11.2.2 Scrapy-Redis代码解析
11.2.3 分布式爬虫功能配置
11.3 项目案例:分布式爬虫爬取摄图网图片
11.3.1 技术分析
11.3.2 代码实现及解析
11.4 本章小结
第12章 Scrapyd部署分布式爬虫
12.1 使用Scrapyd部署分布式爬虫
12.1.1 Scrapyd的安装及运行
12.1.2 Scrapyd功能介绍
12.2 使用Scrapyd-Client批量部署
12.3 使用Docker部署分布式爬虫
12.4 使用Gerapy管理分布式爬虫
12.5 本章小结
第13章 综合项目:抢票软件的实现
13.1 项目需求
13.2 技术分析
13.3 项目实现及解析
13.3.1 搭建Scrapy项目框架
13.3.2 实现获取站点信息的爬虫
13.3.3 实现站点处理类
13.3.4 实现购票类
13.3.5 实现购票功能
13.3.6 运行项目
13.3.7 优化项目
13.4 本章小结
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...