作 者:崔庆才 著作 定 价:99 出 版 社:人民邮电出版社 出版日期:2018年04月01日 页 数:594 装 帧:平装 ISBN:9787115480347 案例丰富,注重实战 博客文章过百万的静觅大神力作 全面介绍了数据采集、数据存储、动态网站爬取、App爬取、验证码破解、模拟登录、代理使用、爬虫框架、分布式爬取等知识 涉及的库或工具:urllib、requests、Beautiful Soup、XPath、pyquery、redis-py、PyMongo、PyMySQL、Selenium、Splash、Charles、mitmproxy、mitmdump、Appium、pyspider、Scrapy、Scr等
●第1章 开发环境配置 11.1 Python 3的安装 11.1.1 Windows下的安装 11.1.2 Linux下的安装 61.1.3 Mac下的安装 81.2 请求库的安装 101.2.1 requests的安装 101.2.2 Selenium的安装 111.2.3 ChromeDriver的安装 121.2.4 GeckoDriver的安装 151.2.5 PhantomJS的安装 171.2.6 aiohttp的安装 181.3 解析库的安装 191.3.1 lxml的安装 191.3.2 Beautiful Soup的安装 211.3.3 pyquery的安装 221.3.4 tesserocr的安装 221.4 数据库的安装 261.4.1 MySQL的安装 271.4.2 MongoDB的安装 291.4.3 Redis的安装 361.5 存储库的安装 391.5.1 PyMySQL的安装 391.5.2 PyMongo的安装 391.5.3 redis-py的安装 401.5.4 RedisDump的安装 401.6 Web库的安装 411.6.1 Flask的安装 411.6.2 Tornado的安装 421.7 App爬取相关库的安装 431.7.1 Charles的安装 441.7.2 mitmproxy的安装 501.7.3 Appium的安装 551.8 爬虫框架的安装 591.8.1 pyspider的安装 591.8.2 Scrapy的安装 611.8.3 Scrapy-Splash的安装 651.8.4 Scrapy-Redis的安装 661.9 部署相关库的安装 671.9.1 Docker的安装 671.9.2 Scrapyd的安装 711.9.3 Scrapyd-Client的安装 741.9.4 Scrapyd API的安装 751.9.5 Scrapyrt的安装 751.9.6 Gerapy的安装 76第2章 爬虫基础 772.1 HTTP基本原理 772.1.1 URI和URL 772.1.2 超文本 782.1.3 HTTP和HTTPS 782.1.4 HTTP请求过程 802.1.5 请求 822.1.6 响应 842.2 网页基础 872.2.1 网页的组成 872.2.2 网页的结构 882.2.3 节点树及节点间的关系 902.2.4 选择器 912.3 爬虫的基本原理 932.3.1 爬虫概述 932.3.2 能抓怎样的数据 942.3.3 渲染页面 942.4 会话和Cookies 952.4.1 静态网页和动态网页 952.4.2 无状态HTTP 962.4.3 常见误区 982.5 代理的基本原理 992.5.1 基本原理 992.5.2 代理的作用 992.5.3 爬虫代理 1002.5.4 代理分类 1002.5.5 常见代理设置 101第3章 基本库的使用 1023.1 使用urllib 1023.1.1 发送请求 1023.1.2 处理异常 1123.1.3 解析链接 1143.1.4 分析Robots协议 1193.2 使用requests 1223.2.1 基本用法 1223.2.2 高级用法 1303.3 正则表达式 1393.4 抓取猫眼电影排行 150第4章 解析库的使用 1584.1 使用XPath 1584.2 使用Beautiful Soup 1684.3 使用pyquery 184第5章 数据存储 1975.1 文件存储 1975.1.1 TXT文本存储 1975.1.2 JSON文件存储 1995.1.3 CSV文件存储 2035.2 关系型数据库存储 2075.2.1 MySQL的存储 2075.3 非关系型数据库存储 2135.3.1 MongoDB存储 2145.3.2 Redis存储 221第6章 Ajax数据爬取 2326.1 什么是Ajax 2326.2 Ajax分析方法 2346.3 Ajax结果提取 2386.4 分析Ajax爬取今日头条街拍美图 242第7章 动态渲染页面爬取 2497.1 Selenium的使用 2497.2 Splash的使用 2627.3 Splash负载均衡配置 2867.4 使用Selenium爬取商品 289第8章 验证码的识别 2988.1 图形验证码的识别 2988.2 极验滑动验证码的识别 3018.3 点触验证码的识别 3118.4 微博宫格验证码的识别 318第9章 代理的使用 3269.1 代理的设置 3269.2 代理池的维护 3339.3 付费代理的使用 3479.4 ADSL拨号代理 3519.5 使用代理爬取微信公众号文章 364第10章 模拟登录 37910.1 模拟登录并爬取GitHub 37910.2 Cookies池的搭建 385第11章 App的爬取 39811.1 Charles的使用 39811.2 mitmproxy的使用 40511.3 mitmdump爬取“得到”App电子书信息 41711.4 Appium的基本使用 42311.5 Appium爬取微信朋友圈 43311.6 Appium+mitmdump爬取京东商品 437第12章 pyspider框架的使用 44312.1 pyspider框架介绍 44312.2 pyspider的基本使用 44512.3 pyspider用法详解 459第13章 Scrapy框架的使用 46813.1 Scrapy框架介绍 46813.2 Scrapy入门 47013.3 Selector的用法 48013.4 Spider的用法 48613.5 Downloader Middleware的用法 48713.6 Spider Middleware的用法 49413.7 Item Pipeline的用法 49613.8 Scrapy对接Selenium 50613.9 Scrapy对接Splash 51113.10 Scrapy通用爬虫 51613.11 Scrapyrt的使用 53313.12 Scrapy对接Docker 53613.13 Scrapy爬取新浪微博 541第14章 分布式爬虫 55514.1 分布式爬虫原理 55514.2 Scrapy-Redis源码解析 55814.3 Scrapy分布式实现 56414.4 Bloom Filter的对接 569第15章 分布式爬虫的部署 57715.1 Scrapyd分布式部署 57715.2 Scrapyd-Client的使用 58215.3 Scrapyd对接Docker 58315.4 Scrapyd批量部署 58615.5 Gerapy分布式管理 590
内容简介
本书介绍了如何利用Python 3开发网络爬虫,书中首先介绍了环境配置和基础知识,然后讨论了urllib、requests、正则表达式、Beautiful Soup、XPath、pyquery、数据存储、Ajax数据爬取等内容,接着通过多个案例介绍了不同场景下如何实现数据爬取,很后介绍了pyspider框架、Scrapy框架和分布式爬虫。 本书适合Python程序员阅读。 崔庆才 著作 崔庆才,北京航空航天大学硕士,静觅博客博主,爬虫博文访问量已过百万,喜欢钻研,热爱生活,乐于分享。
《Python 数据挖掘与机器学习实战》 内容简介: 在信息爆炸的时代,数据已成为企业和组织最宝贵的资产。如何从海量、复杂的数据中提取有价值的信息,发现隐藏的模式,并利用这些洞察力驱动决策、优化业务流程、创造新的商业价值,已成为当今社会的核心议题。本书正是为了应对这一挑战而生,它将带领读者深入探索 Python 在数据挖掘与机器学习领域的强大应用,从理论到实践,构建一套完整的数据科学知识体系。 本书内容详实,结构清晰,旨在为初学者提供一条系统学习数据挖掘与机器学习的路径,同时也为有一定基础的开发者提供进阶的指导。我们将从数据挖掘的基础概念入手,逐步深入到各种核心算法和技术,并结合实际案例,演示如何运用 Python 工具链解决真实世界的数据问题。 第一部分:数据挖掘基础与预处理 在开始任何数据分析或建模之前,理解数据、对其进行清洗和转换是至关重要的第一步。本部分将详细介绍数据挖掘的基本流程,包括数据的获取、理解、预处理和探索性数据分析(EDA)。 数据获取与理解: 我们将学习如何从各种来源获取数据,包括数据库(SQLAlchemy)、文件(CSV、Excel、JSON)以及网络接口(API)。理解数据的结构、类型和潜在的质量问题是后续工作的基础。我们将重点讲解如何使用 Pandas 库进行高效的数据加载、查看和初步探索,包括数据帧(DataFrame)的基本操作、数据类型识别、缺失值和异常值的初步检测。 数据预处理: 真实世界的数据往往是“脏”的,充满了缺失值、异常值、不一致的格式等。本部分将详细介绍各种数据预处理技术。我们将学习如何处理缺失值(删除、填充均值/中位数/众数、插值),如何检测和处理异常值(基于统计的方法、箱线图、Z-score),如何进行数据标准化与归一化(Min-Max Scaling, Standardization),以及如何处理分类数据(One-Hot Encoding, Label Encoding)。此外,我们还将涉及特征工程的一些基本概念,例如如何创建新的特征、组合现有特征等,以提高模型性能。 探索性数据分析 (EDA): EDA 是理解数据内在规律、发现数据特征与目标变量之间关系的关键环节。本部分将重点介绍如何利用 Matplotlib 和 Seaborn 等可视化工具进行数据探索。我们将学习绘制各种图表,如直方图、散点图、箱线图、热力图等,以直观地展示数据的分布、变量之间的相关性以及潜在的模式。通过 EDA,我们可以形成对数据的直观认识,为后续的特征选择和模型构建提供指导。 第二部分:经典机器学习算法详解与实践 掌握了数据预处理的基础后,本部分将深入讲解一系列经典的机器学习算法,并结合 Python 实践,帮助读者理解其原理、适用场景以及如何进行模型训练和评估。 监督学习算法: 线性回归与逻辑回归: 从最基础的回归模型开始,我们将详细讲解线性回归的原理,包括最小二乘法,以及如何使用 Scikit-learn 库实现线性回归。随后,我们将介绍逻辑回归,一种强大的分类算法,用于解决二分类问题,并讨论其 Sigmoid 函数、损失函数(交叉熵)以及优化方法。 决策树与随机森林: 决策树以其易于理解和解释的特性而备受青睐。我们将深入讲解决策树的构建原理(ID3、C4.5、CART),包括信息增益、基尼不纯度等概念。在此基础上,我们将介绍集成学习中的强大算法——随机森林,它通过构建多个决策树并集成其预测结果来提高模型的鲁棒性和准确性。 支持向量机 (SVM): SVM 是一种强大的分类和回归算法,尤其擅长处理高维数据。我们将详细讲解 SVM 的基本思想,包括最大间隔分类器、核函数(线性核、多项式核、RBF 核)以及如何选择合适的核函数和参数。 K近邻 (KNN): KNN 是一种简单而有效的分类和回归算法,其核心思想是“物以类聚”。我们将介绍 KNN 的工作原理,包括距离度量(欧氏距离、曼哈顿距离)以及如何选择 K 值。 朴素贝叶斯: 朴素贝叶斯算法基于贝叶斯定理,其“朴素”体现在特征之间相互独立的假设。我们将讲解其原理,并演示如何在文本分类等场景中应用朴素贝叶斯。 无监督学习算法: K-Means 聚类: 聚类是无监督学习中最常用的任务之一,旨在将数据分成若干个簇,使得同一簇内的数据相似度高,不同簇之间的数据相似度低。我们将详细讲解 K-Means 算法的原理、迭代过程以及如何选择 K 值。 主成分分析 (PCA): PCA 是一种常用的降维技术,旨在找到数据中方差最大的几个方向(主成分),并用这些主成分来表示原始数据,从而减少数据的维度。我们将介绍 PCA 的原理及其在数据压缩和特征提取中的应用。 模型评估与调优: 任何机器学习模型的性能都需要进行客观的评估。本部分将详细介绍各种模型评估指标,包括分类模型的准确率、精确率、召回率、F1-score、ROC 曲线和 AUC 值;回归模型的均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)、R-squared 等。此外,我们还将讲解过拟合和欠拟合问题,以及如何使用交叉验证、网格搜索(Grid Search)和随机搜索(Random Search)等技术来优化模型参数,提升模型的泛化能力。 第三部分:进阶主题与实践应用 在掌握了基础算法后,本部分将引入一些更高级的数据挖掘技术和机器学习应用场景,帮助读者拓展视野,解决更复杂的问题。 时间序列分析: 许多实际问题涉及具有时间顺序的数据,例如股票价格、天气预报、销售数据等。本部分将介绍时间序列分析的基本概念,包括平稳性、自相关性、偏自相关性,并讲解 ARIMA 模型等经典的时间序列预测方法。 关联规则挖掘: 关联规则挖掘旨在发现数据集中项与项之间的有趣关系,例如“购买了面包的顾客通常也会购买牛奶”。我们将介绍 Apriori 算法,学习如何找出频繁项集和生成关联规则,以及其在市场篮子分析等领域的应用。 文本挖掘与自然语言处理 (NLP) 基础: 文本数据是互联网上最普遍的数据类型之一。本部分将介绍文本挖掘的基本流程,包括文本预处理(分词、去除停用词、词干提取)、词袋模型(Bag-of-Words)、TF-IDF(词频-逆文档频率)等文本表示方法。我们将简要介绍一些基础的 NLP 技术,为后续更复杂的文本分析打下基础。 构建机器学习流水线: 在实际项目中,我们通常需要将数据预处理、特征工程、模型训练和评估等步骤串联起来,形成一个完整的机器学习流水线。我们将介绍 Scikit-learn 中的 Pipeline 工具,学习如何构建可复用、易于管理的机器学习流程。 实战案例分析: 为了巩固所学知识,本书将穿插多个贴近实际的案例分析。例如,如何使用数据挖掘技术进行客户细分、商品推荐;如何构建一个简单的垃圾邮件分类器;如何预测房价走势等。这些案例将引导读者将理论知识应用于解决具体问题,提升实战能力。 目标读者: 本书适合以下人群: 希望系统学习数据挖掘和机器学习的初学者,包括计算机科学、数学、统计学等相关专业的学生。 对数据分析和建模感兴趣的软件工程师、数据分析师、产品经理等。 希望提升自己在数据驱动决策和智能应用开发方面能力的从业人员。 对 Python 编程有基本了解,并希望将其应用于数据科学领域的开发者。 本书特色: 理论与实践相结合: 深度讲解算法原理,并提供丰富的 Python 代码示例,帮助读者动手实践。 循序渐进的难度: 从基础概念到进阶主题,内容组织层层递进,适合不同水平的读者。 真实案例驱动: 通过贴近实际的案例,展示数据挖掘和机器学习的实际应用价值。 全面的 Python 工具链: 重点介绍 Pandas, NumPy, Scikit-learn, Matplotlib, Seaborn 等核心数据科学库。 易于理解的语言: 采用清晰、易懂的语言风格,避免过于深奥的理论术语,降低学习门槛。 通过阅读本书,读者不仅能够掌握数据挖掘与机器学习的核心技术,更重要的是,能够培养独立解决数据问题的能力,为在快速发展的数据科学领域打下坚实的基础,开启数据驱动创新的无限可能。
阅读《PYTHON3网络爬虫开发实战》的过程,就像是与一位经验丰富的工程师进行了一次深度交流。这本书最大的亮点在于其“实战”导向,它不仅仅停留在理论层面,而是通过大量的真实案例,将抽象的概念具象化。书中对 Python3 生态系统中常用的爬虫库,如 requests、BeautifulSoup、Scrapy 等,进行了详尽的介绍和深入的讲解。我特别喜欢书中对 Scrapy 框架的阐述,它不仅仅是罗列 API,而是从项目构建、Spider 设计、数据处理的整个生命周期,都进行了细致的剖析。跟着书中的例子,我能够独立完成一个小型爬虫项目,并逐步感受到 Scrapy 带来的高效和便捷。更重要的是,书中还探讨了许多在实际爬虫开发中会遇到的棘手问题,例如如何应对反爬虫策略、如何处理代理 IP、如何进行多线程/异步爬取等,并提供了行之有效的解决方案。这让我觉得,这本书不仅仅是教我如何“写”爬虫,更是教我如何“做好”爬虫,如何让我的爬虫更稳定、更高效。它为我打开了数据世界的另一扇窗,让我能够更自信地去探索和利用网络上的海量信息。