新書推薦:
《
纯数学教程
》
售價:NT$
390.0
《
威尔士史:历史与身份的演进
》
售價:NT$
490.0
《
黄金、石油和牛油果:16件商品中的拉丁美洲发展历程
》
售價:NT$
395.0
《
母亲的选择:看不见的移民保姆与女性工作
》
售價:NT$
340.0
《
城邦政治与灵魂政治——柏拉图《理想国》中的政治哲学研究
》
售價:NT$
590.0
《
3分钟漫画墨菲定律:十万个为什么科普百科思维方式心理学 胜天半子人定胜天做事与成事的权衡博弈之道
》
售價:NT$
249.0
《
1911:危亡警告与救亡呼吁
》
售價:NT$
349.0
《
旷野人生:吉姆·罗杰斯的全球投资探险
》
售價:NT$
345.0
|
編輯推薦: |
代码兼顾Python 2和Python 3分享实战项目源代码深入分析爬虫测试与调试过程详解可视化爬虫
|
內容簡介: |
本书以大数据应用方面常用的语言Python为基础,从网络爬虫的实现原理入手,逐步引领读者进入网络爬虫的世界。在各类爬虫框架中,将Scrapy作为轴心,从多个维度揭开爬虫技术的面纱。例如,爬取规则的制定技巧,设计高速爬虫,如何让爬虫更“聪明”地获取数据,将海量数据进行分布式存储的技术,设计具有高隐匿性的爬虫,大规模、高并发的分布式爬虫技术。
|
關於作者: |
近二十年软件开发、项目管理、团队建设和管理经验。致力于互联网技术应用与大数据应用方面的研究与开发工作。曾任多家软件公司的高级软件工程师、项目经理、首席架构师和技术总监等职务。现任广州市增增智能科技有限公司CEO,从事视觉智能、语音智能及IoT等技术的产品研发与企业经营方面的工作。
|
目錄:
|
第1章 爬虫初步
1.1 爬虫与大数据
1.1.1 大数据架构
1.1.2 爬虫的作用与地位
1.1.3 Python与爬虫
1.1.4 Python的网络爬虫框架
1.1.5 虫术技术路线图
1.2 实例:简单的爬虫
1.3 内容分析进阶
1.3.1 选择器
1.3.2 深入BeautifulSoup
1.3.3 元素的搜寻
1.3.4 乱码与中文编码
1.4 新闻供稿的爬取实例
1.5 小结
第2章 Scrapy基础知识
2.1 Scrapy架构
2.2 Scrapy快速入手
2.3 数据模型Item
2.4 蜘蛛Spiders
2.5 管道Item Pipeline
2.6 Scrapy的运行与配置
2.7 新闻供稿爬虫的Scrapy实现
2.8 小结
第3章 Scrapy的工程管理
3.1 Scrapyd
3.2 scrapyd-client及部署
3.3 搭建爬虫服务器
第4章 中阶虫术
4.1 蜘蛛的演化
4.1.1 蜘蛛的本质深入Spider
4.1.2 通用蜘蛛
4.1.3 蜘蛛中间件
4.2 爬虫系统的测试与调试
4.2.1 开发期调试
4.2.2 蜘蛛的测试
4.2.3 蜘蛛的运行期调试
4.2.4 调试内存溢出
4.3 处理HTTP请求
4.3.1 HTTP请求
4.3.2 Scrapy的Request对象
4.3.3 表单处理
4.3.4 下载器中间件
4.4 处理HTTP响应
4.4.1 HTTP响应
4.4.2 Scrapy的响应对象
4.4.3 深入选择器
4.4.4 非结构化数据的提取
4.4.5 黑夜中的眼睛
4.5 处理JavaScript
4.5.1 示例:电商产品爬虫
4.5.2 Selenium和PhantomJS
4.5.3 Scrapy与Splash
4.6 数据存储与后处理
4.6.1 图片的下载与存储
4.6.2 示例:产品图片采集
4.6.3 导出到数据文件
4.6.4 导出到数据库
4.6.5 示例:基于阿里云的存储后端
第5章 高阶虫术
5.1 增量式爬网
5.1.1 推演路由
5.1.2 时机的重要性
5.1.3 去重处理
5.1.4 布隆过滤器
5.1.5 基于Redis的布隆过滤器
5.2 突破封印
5.2.1 封禁浅析
5.2.2 客户端仿真
5.2.3 化身万千蜘蛛世界的易容术
5.2.4 反跟踪
5.2.5 绕开蜜罐
5.3 虫海
5.3.1 分布式爬虫架构
5.3.2 认识scrapy-redis
5.3.3 示例:分布式电商爬虫
5.4 可视化爬虫
5.4.1 示例:某点评网爬虫
5.4.2 解读Portia爬虫代码
5.4.3 数据项加载器Item Loaders
5.4.4 最后的工作
|
內容試閱:
|
很久以前我就接触了网络爬虫这门技术,从当时接触的范畴来说,称之为小玩意或者小助手可能更为贴切。我使用爬虫只是为了收集一些样本数据做测试,或者对上线的项目进行高强度的并发性压力测试,又或者获取感兴趣的图片、新闻。
爬虫涉及的技术比较多,用各种语言都可以快速地写出一个爬虫,所以一直以来并没有被看作一门综合性的技术,直到2015年我负责的开发部门接到公司安排的三项重点开发任务:
(1)从微信和微博上搜集哪些言论正变得热门,哪些公众号或者微博账号的关注度正在持续地上升。
(2)要与一家技术很落后的电商公司的业务系统在没有提供数据接口的情况下进行大规模的数据同步。
(3)开发一个数据可视化平台,并导入公司内部多年来的销售数据(都是一些Excel和CSV文件),然后将当前每月在京东、淘宝等电商平台上的统计数据合并起来进行统一的查询与统计。
在接到这三个任务时,可以说是没有任何头绪的,这些任务简单看都是一些数据整合的工作。在深入分析与研究之后发现,要完成这三大任务都必须依赖爬虫技术。
这是一个坑坑洼洼,而且充满挑战的过程。例如,如何能从号称封闭独立的微信中挖出数据,又不被屏蔽;如何能将每天过亿条的数据存储下来而不会塞爆服务器;如何能将每天一大堆的CSV或者Excel文件下载到服务器,然后自动整理入库而不会出现数据错误,等等。在完成这三个项目之后,我和我的团队都对爬虫有了非常深刻的理解与认识,很多方面的知识与经验都得到了极大的提高。在综合过往的开发经验和这几年的实际入坑经验之后,我决定将其编撰成书,将这些看似零散的技术融合起来。
内容介绍
虫术是一门综合性的技术,涉及的知识面很广,为了不让你在一大堆的技术面前感到茫然,我将这门术分成了三个运用阶段,一步步由浅入深地进行叙述。
本书共5章,前3章为初阶部分,第4章为中阶部分,第5章为高阶部分。
第1章 爬虫初步
本章首先介绍爬虫在目前大数据生态下的地位,还提供了一份关于学习虫术的详尽的技术线路图,最后讲述爬虫基本的实现方法与实际运用示例,目的在于让读者对虫术建立一个基本的概念并能从示例中引起对这门技术的兴趣。
第2章 Scrapy基础
虫术以Scrapy架构为核心基础,本章对Scrapy的架构和各个模块的作用进行了详细的介绍。
第3章 Scrapy工程管理与部署
本章介绍如何在Scrapy工程中运用Scrapyd将本地工程部署到实际运行环境中,详细地讲述Scrapyd安装配置及其附带的scrapyd-client和scrapyd-deploy工具的使用方法。
第4章 中阶虫术
本章包含的内容非常丰富,是针对将虫术运用于实际项目展开的。从Scrapy的蜘蛛内部实现开始,深入HTTP底层,实现对Scrapy中间件的支持,运用Selenium或Splash处理棘手的JavaScript网页,最后详细讲述如何处理采集到的数据。
第5章 高阶虫术
本章是对中阶虫术的深化,聚焦于爬虫系统的性能,讲解如何让爬虫变得更加隐蔽,如何让爬虫看懂图片,如何训练它们使之变得更加聪明,最后讲解如何掌握虫术的大招分布式爬虫来应对大规模的数据集采工作与数据存储任务。
勘误
本书如有勘误,会在https:github.comDotNetAge上发布。由于笔者能力有限,时间仓促,书中难免有错漏,欢迎读者批评指正。
梁睿坤
|
|