×
无Python网络爬虫框架Scrapy从入门到精通

无Python网络爬虫框架Scrapy从入门到精通

1星价 ¥55.3 (7.0折)
2星价¥55.3 定价¥79.0
暂无评论
图文详情
  • ISBN:9787301320228
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:292
  • 出版时间:2021-04-01
  • 条形码:9787301320228 ; 978-7-301-32022-8

本书特色

(1)系统:全流程讲解Scrapy的原理和实战,依次击破编程难点。 (2)经典:凝聚笔者十多年的Scrapy使用经验,无私奉献设计秘籍。 (3)深入:浅入深出地介绍爬虫原理、数据爬取、数据保存、数据分析和测试等技术。并且,所有案例都配有对应的代码,拿来就用。

内容简介

本书从Python主流框架Scrapy的简介及网络爬虫知识讲起,逐步深入到Scrapy进阶实战。本书从实战出发,根据不同需求,有针对性地讲解了静态网页、动态网页、App应用是如何爬取所需数据,以及Scrapy是如何部署分布式爬取,很后还介绍了用Scrapy + Pandas是如何进行数据分析及数据展示,让读者不但可以系统地学习Scrapy编程的相关知识,而且还能对Scrapy应用开发有更为深入的理解。 本书分为12章,涵盖的主要内容有Scrapy框架简介;Scrapy网络爬虫知识介绍;Scrapy开发环境的搭建;Scrapy架构及编程;Scrapy进阶;实战项目:Scrapy静态网页的爬取;实战项目:Scrapy动态网页的爬取;实战项目:Scrapy爬取App应用数据;Scrapy的分布式部署与爬取;分布式的实战项目;用Selenium框架测试网站;用Scrapy + Pandas进行数据分析。 本书内容通俗易懂,实例典型,实用性强,特别适合学习Python主流框架Scrapy的入门读者和进阶读者阅读,也适合数据分析与挖掘技术的初学者阅读,还适合相关培训机构的师生阅读。

目录

第1章 Scrapy框架简介
1.1 Scrapy简介 ·······2
1.2 关于本书:目标和用途 ········2
1.3 进行自动化数据爬取的重要性 ·······3
1.4 掌握自动化测试的重要性 ········3
1.5 合理规划,开发高质量的应用 ·······4
1.6 网络数据的采集法律与道德约束 ·······5
1.7 本章小结 ·······5
第2章 Scrapy网络爬虫知识介绍
2.1 爬虫的作用 ········7
2.2 爬虫**的前端知识 ·······9
2.3 爬虫经常用的Python语法 ·······26
2.4 本章小结 ·······44
第3章 Scrapy开发环境的搭建
3.1 安装Python ·······47
3.2 数据库的安装 ········50
3.3 安装Scrapy ········56
3.4 本章小结 ·······60
第4章 Scrapy架构及编程
4.1 Scrapy架构及目录源码分析 ·······62
4.2 Scrapy项目的创建和管理 ·······67
4.3 PyCharm如何调试Scrapy ·······72
4.4 Scrapy的组件 ·······77
4.5 Scrapy的数据流 ·······78
4.6 数据存储 ·······78
4.7 Scrapy如何定义中间件 ·······80
4.8 Scrapy其他方法的使用 ·······82
4.9 本章小结 ·······83
第5章 Scrapy进阶
5.1 理解Scrapy性能 ·······85
5.2 编写Spider的逻辑 ·······93
5.3 Item和Pipeline ·······95
5.4 数据库存储 ·······98
5.5 Scrapy集成随机User-Agent和代理IP ·······100
5.6 突破反爬技术 ·······102
5.7 图片和文件下载 ·······103
5.8 如何部署爬虫 ·······108
5.9 计划定时爬取 ·······111
5.10 本章小结 ·······112
第6章 实战项目:Scrapy静态网页的爬取
6.1 采集需求及网页分析 ·······114
6.2 数据表的设计 ·······115
6.3 获取和解析列表、详情页 ·······115
6.4 数据存储 ·······117
6.5 数据的导出和展示 ·······119
6.6 本章小结 ·······121
第7章 实战项目:Scrapy动态网页的爬取
7.1 采集需求及网页分析 ·······123
7.2 Selenium的安装和使用 ···············124
7.3 解析网页及代码的实现 ················126
7.4 数据的存储 ·······128
7.5 数据的导出 ·······130
7.6 本章小结 ·······133
第8章 实战项目:Scrapy爬取App应用数据
8.1 搭建开发环境 ·······135
8.2 移动自动化工具:Ui Automator Viewer ·······144
8.3 Appium Desktop工具的录制功能 ·······147
8.4 App应用数据抓取实战项目 ·······150
8.5 本章小结 ·······158
第9章 Scrapy的分布式部署与爬取
9.1 分布式系统概述及要点 ·······160
9.2 使用Gerapy管理分布式爬虫 ·······162
9.3 通过Scrapyd + ScrapydWeb简单高效地部署和监控分布式爬虫项目 ·······168
9.4 使用Scrapy-Redis实现分布式爬虫 ·······174
9.5 本章小结 ·······195
第10章 分布式的实战项目
10.1 搭建Redis服务器 ·······197
10.2 创建主项目及配置Scrapy-Redis ·······197
10.3 创建从项目及配置Scrapy-Redis ·······200
10.4 部署代理IP池及User-Agent ·······203
10.5 执行程序 ·······205
10.6 本章小结 ·······206
第11章 用Selenium框架测试网站
11.1 网站测试简介 ·······208
11.2 用Scrapy + Selenium进行前端自动化测试 ·······208
11.3 本章小结 ·······235
第12章 用Scrapy + Pandas进行数据分析
12.1 Python数据分析概述 ·······237
12.2 NumPy简介及操作 ·······238
12.3 Matplotlib简介及操作 ·······247
12.4 Pandas简介及操作 ·······256
12.5 实战项目:Scrapy爬取网站并用Pandas进行数据分析 ·······267
12.6 本章小结 ·······284
展开全部

节选

第1章 Scrapy框架简介 欢迎来到Scrapy的世界,Scrapy是用Python语言编写的开源网络爬虫框架。如果想在网络上合法地采集想要的数据,或者想要测试网站的性能,那么本书会介绍如何使用Scrapy实现这些功能。不管是经验很少的初学者还是基本没接触过Scrapy的读者,都可通过本书的各种实例、实战项目掌握Scrapy。 1.1 Scrapy简介 从头开发一个爬虫程序是一项很烦琐吃力的工作。为了避免重复地造轮子消耗大量的时间,降低开发成本,提高程序的质量,我们会选择一些优秀的爬虫框架,Scrapy就是其中之一。Scrapy是现在非常流行的开源爬虫框架,而且还是一个成熟的框架;是Python开发的一个快速、高层次的Web数据抓取框架,用于抓取Web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据采集、数据挖掘、网络异常用户检测、存储数据、监测和自动化测试等方面。 Scrapy使用了Twisted异步网络框架来处理网络通信,可以加快下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活地完成各种需求。它也提供了多种类型爬虫的基类,如BaseSpider、Sitemap爬虫等,*新版本又提供了Web 2.0爬虫的支持。 Scrapy是基于事件的架构,使数据清洗、格式化、数据存储级联起来。当打开上千万链接时,可以同时合理地拆分吞吐量,只要合理设计,性能的降低就会比较小。例如,假如想从某网站获取商品销量的信息,假设每页包含100个商品的销量。Scrapy可以非常轻松地在该网站并行(同时)执行16个请求。如果一个请求需要1秒,那么每秒就会爬取16页,把16页乘每页的商品数量,*后得出每秒爬取1600个商品销量的信息。这样,速度和性能大大增加,比单线程每秒爬取100个商品,足足快了16倍。 1.2 关于本书:目标和用途 本书的目标:通过基础知识的梳理,重点示例和实战项目的演示,来教读者如何使用Scrapy。 第2~4章,梳理运用Scrapy所需要的基础**知识,以及Scrapy在不同操作系统中是如何搭建的。第5章是Scrapy的进阶知识介绍,让读者更好地掌握Scrapy并且能更好地运用它。第6~10章是实战项目,分别通过静态网页、动态网页、App的数据抓取及分布式的部署与爬取,让读者更深入地了解和掌握Scrapy的框架精华。第11章是通过爬虫测试网站性能的介绍和实例,让读者掌握Scrapy的另一个功能——自动化测试。第12章是利用Python进行数据分析,并对三大模块——NumPy、Matplotlib和Pandas进行了详细介绍,通过实例来演示Scrapy爬取网站,并对爬取到的数据进行分析及视图展示。 由浅入深地阅读本书,并且通过本书的实战项目去练习所学知识,举一反三地磨炼,这样就能成为很优秀的Scrapy开发者。 1.3 进行自动化数据爬取的重要性 2011年5月,麦肯锡全球研究院发布报告——Big data: The next frontier for innovation, competition, and productivity,**次给大数据做出相对清晰的定义:“大数据是指其大小超出了常规数据库工具获取、储存、管理和分析能力的数据集。”而数据爬取始终与大数据联系在一起,为所有预测提供了基础。“大数据赋予我们预测未来的能力”,这就是数据挖掘的力量。 如今我们的生活已经被数字化:每笔互联网上的、银行卡的交易都是数字化的,每次互联网上浏览的行为都有可能被保存下来进行数字化。随着可穿戴设备的兴起,每一次心跳和呼吸也会被数字化并保存为可用的数据。所以,一台计算机或手机比以往任何时候都能更好地“理解”我们的世界。如果计算机或手机能预测人们的生活方式,它就能准确地告知企业什么时候是进行促销的*佳时机,例如,如果这个人倾向于每周六去餐厅聚会,那么企业可以给他推送餐厅的优惠信息。如果这个人倾向于每年春节出去度假,那么企业可以给他推送一张酒店住宿优惠券或旅游优惠券。互联网金融、医疗病例分析、数据建模、信息聚类、数据分析服务等,这些系统所需要的数据几乎都是要通过爬虫进行获取,并且通过规范化提取完成。它们通过提取到的数据进行分析,进行销售预测,指定商业策略,使营业利润*大化。从海量病例信息中挖掘有价值的信息,提高患者诊断的准确度、治疗的精确度,为医院决策管理提供有力的支持。所以,一旦未来变得可预测,我们总是可以提前计划,并为之做*好的行动准备。 1.4 掌握自动化测试的重要性 是否需要进行软件测试主要取决于以下几点。 (1)客户需求度逐渐提高,相应的对软件系统的要求和期望越来越高。 (2)软件系统复杂度提高,需要多人进行合作。 (3)软件开发是程序员的智力活动,无法用固定的生产标准来管理。 由于以上原因,导致软件质量降低,进度和成本无法控制。所以,我们要尽早测试,尽早发现问题。而且运行一套测试方法能够保证代码按照规定的功能和目标运行,不仅节约时间,而且减少产生BUG的可能性。 手工测试通常是工程师先执行预定义的测试用例,将执行结果与预期的行为进行手工比较并记录结果。每次源代码更改时都会重复这些手动测试,由于都是人为参与,因此这个过程很容易出错。古语有云:“工欲善其事,必先利其器。” 自动化测试则是将自动化工具和技术应用于软件测试,让程序代替人去验证程序功能的过程,旨在减少测试工作,更快、更经济地验证软件质量,有助于以更少的工作量构建质量更好的软件。 自动化测试分为三个层级:单元测试、接口测试和UI测试,这三层呈一个金字塔形状分布。*底层是单元测试,接口测试在中间,UI测试在*上层。 自动化测试还可以解决以下问题。 (1)软件在发布新版本以后对之前的功能进行验证。 (2)软件的压力测试,即多用户同时操作软件,软件服务器处理多用户请求的能力。 (3)软件的兼容性测试,即在不同浏览器(IE、Chrome、Firefox等)中的展现能力,或者在不同操作系统(Windows、Linux等)中的兼容能力。 目前大多数编程语言(包括Python)都有一些测试框架。将Python的Unittest库与网络爬虫组合起来,就可以实现简单的网站前端测试功能。Python的Selenium是一个可以解决网站中各种复杂问题的优秀测试框架,用它可以写出一些符合测试流程的测试脚本进行网站测试。 1.5 合理规划,开发高质量的应用 为了合理规划,开发高质量的应用,需要通过网络数据采集,对其关键共性技术进行研发,提升数据存储、理论算法、模型分析等核心竞争力,做出面向大数据的分析软件。 通过爬虫的细心抓取,可以为企业提供大量的真实数据,帮助企业构建覆盖全流程、全环节、全生命周期的数据链,使企业提升数据分析处理和知识创造能力的同时,还可以帮助企业及早发现和修复错误,并做出明智的决策。 1.6 网络数据的采集法律与道德约束 当我们开发爬虫进行网络采集时,需要关注网络上数据的版权。如果采集别人的文章放在自己的网站上展示,则侵犯了别人对这篇文章的版权。一般爬虫采集的大多数数据都是统计数据,但是如果采集的数据源被对方申请了版权,那么在未取得授权的情况下是不能进行采集的。 以下行为表示违反了采集法律。 (1)超出Robots协议的许可。Robots协议是国际互联网界通行的道德规范,也是一种存放于网站根目录下的文本文件,它通常告诉爬虫,此网站中的哪些内容是不可以爬取的,哪些内容是可以爬取的。打个比方:网站就像酒店里的房间,房间的门口会挂着“请勿打扰”或“欢迎光临”的提示牌。那么,服务生就知道哪些房间能够进入,哪些房间不能进入。如果强行进入“请勿打扰”的房间,就算违法了。Scrapy提供了这些功能的设置。 (2)对爬取的网站造成了实际的伤害。网络服务器是很昂贵的,如果由于无限量大批地从目标网站爬取数据,使目标网站崩溃,就会导致网站无法为其他用户正常地提供服务。这些都算是对目标网站造成的伤害。 (3)故意而为之。虽然采集有时需要很长的时间,但*好让爬虫在午夜进行,这样可以减少目标网站的压力。这样的行为可以不影响网站高峰期的运行。 1.7 本章小结 本章介绍了Scrapy,介绍了它能够帮助用户做什么,并且阐述了自动化数据爬取和自动化测试的重要性。此外,告诉读者合理规划,开发高质量的应用及网络数据需要合法采集。

作者简介

张颖,“清颖设计”微信公众号创始人,现任上海懂得网络科技有限公司技术部主管,从事编程开发十余年,熟悉Python的方方面面,尤其擅长Python爬虫和数据分析。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航