| 作者 |
| 张涛罗攀 蒋仟 |
| 丛书名 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9781909171428 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------从零开始学Scrapy网络爬虫(视频教学版)--------------------------- 本书从零开始,循序渐进地介绍了目前最流行的网络爬虫框架Scrapy。本书共13章。其中第1~4章为基础篇,介绍了Python基础、网络爬虫基础、Scrapy框架及基本的爬虫功能。第5~10章为进阶篇,介绍了如何将爬虫数据存储于MySQL、MongoDB和Redis数据库中;如何实现异步的Ajax数据的爬取;如何使用Selenium和Splash实现动态网站的爬取;如何实现模拟登录功能;如何突破反爬虫技术,以及如何实现文件和图片的下载。第11~13章为高级篇,介绍了使用Scrapy-Redis实现分布式爬虫;使用Scrapyd和Docker部署分布式爬虫;使用Gerapy管理分布式爬虫,并实现了一个抢票软件的综合项目。 本书适合爬虫初学者、爬虫爱好者及高校相关学生,也适合数据爬虫工程师作为参考读物,同时也适合各大院校和培训机构作为教材使用。 ---------------------------从零开始学Python网络爬虫--------------------------- Python是数据分析的语言,而网络中的数据和信息很多,如何从中获取需要的数据和信息呢?简单、直接的方法就是用爬虫技术来解决。本书是一本教初学者学习如何爬取网络数据和信息的入门读物。书中不仅有Python的相关内容,而且还有数据处理和数据挖掘等方面的内容。本书内容非常实用,讲解时穿插了22个爬虫实战案例,可以大大提高读者的实际动手能力。本书共分12章,核心主题包括Python零基础语法入门、爬虫原理和网页构造、我的第壹个爬虫程序、正则表达式、Lxml库与Xpath语法、使用API、数据库存储、多进程爬虫、异步加载、表单交互与模拟登录、Selenium模拟浏览器、Scrapy爬虫框架。此外,书中通过一些典型爬虫案例,讲解了有经纬信息的地图图表和词云的制作方法,让读者体验数据背后的乐趣。本书适合爬虫技术初学者、爱好者及高等院校的相关学生,也适合数据爬虫工程师作为参考读物,同时也适合各大Python数据分析的培训机构作为教材使用。 |
| 目录 |
---------------------------从零开始学Scrapy网络爬虫(视频教学版)--------------------------- 前言 第1篇 基础篇 第1章 Python基础 2 1.1 Python简介 2 1.1.1 Python简史 2 1.1.2 搭建Python环境 3 1.1.3 安装PyCharm集成开发环境 6 1.2 Python基本语法 7 1.2.1 基本数据类型和运算 7 1.2.2 运算符和表达式 8 1.2.3 条件判断语句 9 1.2.4 循环语句 10 1.2.5 字符串 12 1.3 Python内置数据结构 14 1.3.1 列表 15 1.3.2 字典 16 1.3.3 元组 17 1.3.4 遍历对象集合 17 1.4 Python模块化设计 18 1.4.1 函数 18 1.4.2 迭代器(iterator) 20 1.4.3 生成器(Generator) 20 1.4.4 类和对象 22 1.4.5 文件与异常 23 1.5 本章小结 25 第2章 网络爬虫基础 26 2.1 HTTP基本原理 26 2.1.1 URL介绍 27 2.1.2 HTTP和HTTPS协议 27 2.1.3 HTTP请求(Request) 27 2.1.4 HTTP响应(Response) 30 2.2 网页基础 32 2.2.1 HTML文档 33 2.2.2 网页的结构 33 2.2.3 节点树及节点之间的关系 34 2.3 使用XPath提取网页信息 36 2.3.1 XPath介绍 36 2.3.2 XPath常用路径表达式 36 2.3.3 XPath带谓语的路径表达式 39 2.4 本章小结 40 第3章 Scrapy框架介绍 41 3.1 网络爬虫原理 41 3.1.1 爬虫执行的流程 41 3.2 Scrapy框架结构及执行流程 42 3.2.1 Scrapy框架结构 42 3.2.2 Scrapy执行流程 44 3.3 Scrapy安装 44 3.3.1 使用pip安装Scrapy 44 3.3.2 常见安装错误 45 3.3.3 验证安装 46 3.4 第一个网络爬虫 46 3.4.1 需求分析 46 3.4.2 创建项目 47 3.4.3 分析页面 48 3.4.4 实现Spider爬虫功能 49 3.4.5 运行爬虫 50 3.4.6 常见问题 51 3.5 本章小结 52 第4章 Scrapy网络爬虫基础 53 4.1 使用Spider提取数据 53 4.1.1 Spider组件介绍 53 4.1.2 重写start_requests()方法 55 4.1.3 Request对象 57 4.1.4 使用选择器提取数据 58 4.1.5 Response对象与XPath 59 4.1.6 Response对象与CSS 61 4.1.7 进一步了解Response对象 62 4.1.8 多页数据的爬取 63 4.2 使用Item封装数据 64 4.2.1 定义Item和Field 65 4.2.2 使用ItemLoader填充容器 66 4.3 使用Pipeline处理数据 69 4.3.1 Item Pipeline介绍 70 4.3.2 编写自己的Item Pipeline 70 4.3.3 启用Item Pipeline 71 4.3.4 多个Item Pipeline 71 4.3.5 保存为其他类型文件 72 4.4 项目案例:爬取链家网二手房信息 75 4.4.1 项目需求 75 4.4.2 技术分析 76 4.4.3 代码实现及解析 77 4.5 本章小结 85 第2篇 进阶篇 第5章 数据库存储 88 5.1 MySQL数据库 88 5.1.1 关系型数据库概述 88 5.1.2 下载和安装MySQL数据库 88 5.1.3 数据库管理工具Navicat 92 5.1.4 Python访问MySQL数据库 94 5.1.5 项目案例 97 5.2 MongoDB数据库 100 5.2.1 NoSQL概述 100 5.2.2 MongoDB介绍 100 5.2.3 MongoDB的下载和安装 101 5.2.4 Python访问MongoDB数据库 102 5.2.5 项目案例 108 5.3 Redis数据库 111 5.3.1 Redis的下载和安装 111 5.3.2 Python访问Redis 113 5.3.3 项目案例 118 5.4 本章小结 121 第6章 JavaScript与AJAX数据爬取 122 6.1 JavaScript简介 122 6.2 项目案例:爬取QQ音乐榜单歌曲 122 6.2.1 项目需求 122 6.2.2 技术分析 123 6.2.3 代码实现及解析 126 6.2.4 更常见的动态网页 128 6.3 AJAX简介 129 6.4 项目案例:爬取豆瓣电影信息 130 6.4.1 项目需求 130 6.4.2 技术分析 130 6.4.3 代码实现及解析 133 6.5 本章小结 135 第7章 动态渲染页面的爬取 136 7.1 Selenium实现动态页面爬取 136 7.1.1 Selenium安装 136 7.1.2 Selenium简单实现 137 7.1.3 Selenium语法 138 7.2 项目案例:爬取今日头条热点新闻 145 7.2.1 项目需求 145 7.2.2 技术分析 145 7.2.3 代码实现及解析 147 7.3 Splash实现动态页面爬取 151 7.3.1 Splash介绍 151 7.3.2 Splash环境搭建 152 7.3.3 Splash模块介绍 156 7.4 项目案例:爬取一号店中的iPhone手机信息 162 7.4.1 项目需求 162 7.4.2 技术分析 163 7.4.3 代码实现及解析 165 7.5 本章小结 168 第8章 模拟登录 169 8.1 模拟登录解析 169 8.1.1 登录过程解析 169 8.1.2 模拟登录的实现 171 8.2 验证码识别 174 8.2.1 使用OCR识别验证码 174 8.2.2 处理复杂验证码 176 8.2.3 五花八门的验证码 177 8.3 Cookie自动登录 177 8.3.1 Cookie介绍 178 8.3.2 获取Cookie的库—browsercookie 179 8.4 项目案例:爬取起点中文网某用户的书架信息 180 8.4.1 项目需求 180 8.4.2 技术分析 180 8.4.3 代码实现及解析 182 8.5 本章小结 184 第9章 突破反爬虫技术 185 9.1 反爬虫技术及突破措施 185 9.2 伪装成不同的浏览器 187 9.2.1 UserAgentMiddleware中间件介绍 187 9.2.2 实现伪装成随机浏览器 188 9.2.3 更简单的方法 191 9.3 使用HTTP代理服务器 192 9.3.1 HTTP代理服务器 192 9.3.2 获取免费代理 193 9.3.3 实现随机代理 199 9.4 本章小结 202 第10章 文件和图片下载 203 10.1 文件下载 203 10.1.1 FilesPipeline执行流程 203 10.2 项目案例:爬取seaborn案例源文件 204 10.2.1 项目需求 204 10.2.2 技术分析 206 10.2.3 代码实现及解析 206 10.2.4 更多功能 211 10.3 图片下载 212 10.4 项目案例:爬取摄图网图片 213 10.4.1 项目需求 213 10.4.2 技术分析 215 10.4.3 代码实现及解析 215 10.5 本章小结 221 第3篇 高级篇 第11章 Scrapy-Redis实现分布式爬虫 224 11.1 分布式爬虫原理 224 11.2 Scrapy-Redis实现分布式爬虫分析 225 11.2.1 实现分布式爬虫思路 225 11.2.2 Scrapy-Redis代码解析 226 11.2.3 分布式爬虫功能配置 231 11.3 项目案例:分布式爬虫爬取摄图网图片 233 11.3.1 技术分析 233 11.3.2 代码实现及解析 234 11.4 本章小结 237 第12章 Scrapyd部署分布式爬虫 238 12.1 使用Scrapyd部署分布式爬虫 238 12.1.1 Scrapyd的安装及运行 238 12.1.2 Scrapyd功能介绍 241 12.2 使用Scrapyd-Client批量部署 244 12.3 使用Docker部署分布式爬虫 248 12.4 使用Gerapy管理分布式爬虫 253 12.5 本章小结 258 第13章 综合项目:抢票软件的实现 259 13.1 项目需求 259 13.2 技术分析 262 13.3 项目实现及解析 263 13.3.1 搭建Scrapy项目框架 263 13.3.2 实现获取站点信息的爬虫 264 13.3.3 实现站点处理类 266 13.3.4 实现购票类 267 13.3.5 实现购票功能 280 13.3.6 运行项目 282 13.3.7 优化项目 282 13.4 本章小结 283 ---------------------------从零开始学Python网络爬虫--------------------------- 前言 第1章 Python零基础语法入门 1 1.1 Python与PyCharm安装 1 1.1.1 Python安装(Windows、Mac和Linux) 1 1.1.2 PyCharm安装 3 1.2 变量和字符串 3 1.2.1 变量 4 1.2.2 字符串的“加法”和“乘法” 4 1.2.3 字符串的切片和索引 5 1.2.4 字符串方法 5 1.3 函数与控制语句 7 1.3.1 函数 7 1.3.2 判断语句 8 1.3.3 循环语句 8 1.4 Python数据结构 9 1.4.1 列表 9 1.4.2 字典 11 1.4.3 元组和集合 11 1.5 Python文件操作 11 1.5.1 打开文件 11 1.5.2 读写文件 12 1.5.3 关闭文件 13 1.6 Python面向对象 13 1.6.1 定义类 14 1.6.2 实例属性 14 1.6.3 实例方法 15 1.6.4 类的继承 16 第2章 爬虫原理和网页构造 17 2.1 爬虫原理 17 2.1.1 网络连接 17 2.1.2 爬虫原理 18 2.2 网页构造 21 2.2.1 Chrome浏览器的安装 21 2.2.2 网页构造 22 2.2.3 查询网页信息 23 第3章 我的第一个爬虫程序 26 3.1 Python第三方库 26 3.1.1 Python第三方库的概念 26 3.1.2 Python第三方库的安装方法 27 3.1.3 Python第三方库的使用方法 29 3.2 爬虫三大库 30 3.2.1 Requests库 30 3.2.2 BeautifulSoup库 32 3.2.3 Lxml库 36 3.3 综合案例1——爬取北京地区短租房信息 37 3.3.1 爬虫思路分析 37 3.3.2 爬虫代码及分析 38 3.4 综合案例2——爬取酷狗TOP500的数据 41 3.4.1 爬虫思路分析 41 3.4.2 爬虫代码及分析 43 第4章 正则表达式 45 4.1 正则表达式常用符号 45 4.1.1 一般字符 45 4.1.2 预定义字符集 46 4.1.3 数量词 46 4.1.4 边界匹配 47 4.2 re模块及其方法 48 4.2.1 search()函数 48 4.2.2 sub()函数 49 4.2.3 findall()函数 49 4.2.4 re模块修饰符 51 4.3 综合案例1——爬取《斗破苍穹》全文小说 53 4.3.1 爬虫思路分析 53 4.3.2 爬虫代码及分析 55 4.4 综合案例2——爬取糗事百科网的段子信息 56 4.4.1 爬虫思路分析 56 4.4.2 爬虫代码及分析 58 第5章 Lxml库与Xpath语法 63 5.1 Lxml库的安装与使用方法 63 5.1.1 Lxml库的安装(Mac、Linux) 63 5.1.2 Lxml库的使用 64 5.2 Xpath语法 68 5.2.1 节点关系 68 5.2.2 节点选择 70 5.2.3 使用技巧 70 5.2.4 性能对比 74 5.3 综合案例1——爬取豆瓣网图书TOP250的数据 77 5.3.1 将数据存储到CSV文件中 77 5.3.2 爬虫思路分析 78 5.3.3 爬虫代码及分析 80 5.4 综合案例2——爬取起点中文网小说信息 83 5.4.1 将数据存储到Excel文件中 83 5.4.2 爬虫思路分析 84 5.4.3 爬虫代码及分析 86 第6章 使用API 88 6.1 API的使用 88 6.1.1 API概述 88 6.1.2 API使用方法 89 6.1.3 API验证 91 6.2 解析JSON数据 93 6.2.1 JSON解析库 93 6.2.2 斯必克API调用 94 6.2.3 百度地图API调用 96 6.3 综合案例1——爬取PEXELS图片 98 6.3.1 图片爬取方法 98 6.3.2 爬虫思路分析 99 6.3.3 爬虫代码及分析 100 6.4 综合案例2——爬取糗事百科网的用户地址信息 102 6.4.1 地图的绘制 102 6.4.2 爬取思路分析 105 6.4.3 爬虫代码及分析 106 第7章 数据库存储 109 7.1 MongoDB数据库 109 7.1.1 NoSQL概述 109 7.1.2 MongoDB的安装 109 7.1.3 MongoDB的使用 115 7.2 MySQL数据库 117 7.2.1 关系型数据库概述 117 7.2.2 MySQL的安装 117 7.2.3 MySQL的使用 123 7.3 综合案例1——爬取豆瓣音乐TOP250的数据 126 7.3.1 爬虫思路分析 126 7.3.2 爬虫代码及分析 127 7.4 综合案例2——爬取豆瓣电影TOP250的数据 132 7.4.1 爬虫思路分析 132 7.4.2 爬虫代码及分析 133 第8章 多进程爬虫 139 8.1 多线程与多进程 139 8.1.1 多线程和多进程概述 139 8.1.2 多进程使用方法 140 8.1.3 性能对比 140 8.2 综合案例1——爬取简书网热评文章 143 8.2.1 爬虫思路分析 143 8.2.2 爬虫代码及分析 147 8.3 综合案例2——爬取转转网二手市场商品信息 150 8.3.1 爬虫思路分析 150 8.3.2 爬虫代码及分析 152 第9章 异步加载 159 9.1 异步加载技术与爬虫方法 159 9.1.1 异步加载技术概述 159 9.1.2 异步加载网页示例 159 9.1.3 逆向工程 162 9.2 综合案例1——爬取简书网用户动态信息 165 9.2.1 爬虫思路分析 165 9.2.2 爬虫代码及分析 171 9.3 综合案例2——爬取简书网7日热门信息 173 9.3.1 爬虫思路分析 173 9.3.2 爬虫代码及分析 179 第10章 表单交互与模拟登录 182 10.1 表单交互 182 10.1.1 POST方法 182 10.1.2 查看网页源代码提交表单 182 10.1.3 逆向工程提交表单 185 10.2 模拟登录 187 10.2.1 Cookie概述 187 10.2.2 提交Cookie模拟登录 187 10.3 综合案例1——爬取拉勾网招聘信息 188 10.3.1 爬虫思路分析 188 10.3.2 爬虫代码及分析 193 10.4 综合案例2——爬取新浪微博好友圈信息 195 10.4.1 词云制作 195 10.4.2 爬虫思路分析 202 10.4.3 爬虫代码及分析 206 第11章 Selenium模拟浏览器 209 11.1 Selenium和PhantomJS 209 11.1.1 Selenium的概念和安装 209 11.1.2 浏览器的选择和安装 209 11.2 Selenium和PhantomJS的配合使用 213 11.2.1 模拟浏览器操作 213 11.2.2 获取异步加载数据 215 11.3 综合案例1——爬取QQ空间好友说说 218 11.3.1 CSV文件读取 218 11.3.2 爬虫思路分析 220 11.3.3 爬虫代码及分析 221 11.4 综合案例2——爬取淘宝商品信息 224 11.4.1 爬虫思路分析 224 11.4.2 爬虫代码及分析 226 第12章 Scrapy爬虫框架 229 12.1 Scrapy的安装和使用 229 12.1.1 Scrapy的安装 229 12.1.2 创建Scrapy项目 233 12.1.3 Scrapy文件介绍 235 12.1.4 Scrapy爬虫编写 237 12.1.5 Scrapy爬虫运行 239 12.2 综合案例1——爬取简书网热门专题信息 240 12.2.1 爬虫思路分析 240 12.2.2 爬虫代码及分析 244 12.3 综合案例2——爬取知乎网Python精华话题 246 12.3.1 爬虫思路分析 246 12.3.2 爬虫代码及分析 248 12.4 综合案例3——爬取简书网专题收录文章 250 12.4.1 爬虫思路分析 251 12.4.2 爬虫代码及分析 254 12.5 综合案例4——爬取简书网推荐信息 257 12.5.1 爬虫思路分析 258 12.5.2 爬虫代码及分析 260 |