虫术——Python绝技
  • 推荐0
  • 收藏6
  • 浏览4.0K

虫术——Python绝技

梁睿坤 (作者) 

  • 书  号:978-7-121-34456-5
  • 出版日期:2017-07-01
  • 页  数:428
  • 开  本:16(185*235)
  • 出版状态:上市销售
纸质版 ¥99.00
本书以大数据应用方面常用的语言Python为基础,从网络爬虫的实现原理入手,逐步引领读者进入网络爬虫的世界。在各类爬虫框架中,将Scrapy作为轴心,从多个维度揭开爬虫技术的面纱。例如,爬取规则的制定技巧,设计高速爬虫,如何让爬虫更“聪明”地获取数据,将海量数据进行分布式存储的技术,设计具有高隐匿性的爬虫,大规模、高并发的分布式爬虫技术。
代码兼顾Python 2和Python 3
分享实战项目源代码
深入分析爬虫测试与调试过程
详解可视化爬虫
近二十年软件开发、项目管理、团队建设和管理经验。致力于互联网技术应用与大数据应用方面的研究与开发工作。曾任多家软件公司的高级软件工程师、项目经理、首席架构师和技术总监等职务。

现任广州市增增智能科技有限公司CEO,从事视觉智能、语音智能及IoT等技术的产品研发与企业经营方面的工作。
很久以前我就接触了网络爬虫这门技术,从当时接触的范畴来说,称之为“小玩意”或者“小助手”可能更为贴切。我使用爬虫只是为了收集一些样本数据做测试,或者对上线的项目进行高强度的并发性压力测试,又或者获取感兴趣的图片、新闻。
爬虫涉及的技术比较多,用各种语言都可以快速地写出一个爬虫,所以一直以来并没有被看作一门综合性的技术,直到2015年我负责的开发部门接到公司安排的三项重点开发任务:
(1)从微信和微博上搜集哪些言论正变得热门,哪些公众号或者微博账号的关注度正在持续地上升。
(2)要与一家技术很落后的电商公司的业务系统在没有提供数据接口的情况下进行大规模的数据同步。
(3)开发一个数据可视化平台,并导入公司内部多年来的销售数据(都是一些Excel和CSV文件),然后将当前每月在京东、淘宝等电商平台上的统计数据合并起来进行统一的查询与统计。
在接到这三个任务时,可以说是没有任何头绪的,这些任务简单看都是一些数据整合的工作。在深入分析与研究之后发现,要完成这三大任务都必须依赖爬虫技术。
这是一个坑坑洼洼,而且充满挑战的过程。例如,如何能从号称封闭独立的微信中挖出数据,又不被屏蔽;如何能将每天过亿条的数据存储下来而不会“塞爆”服务器;如何能将每天一大堆的CSV或者Excel文件下载到服务器,然后自动整理入库而不会出现数据错误,等等。在完成这三个项目之后,我和我的团队都对爬虫有了非常深刻的理解与认识,很多方面的知识与经验都得到了极大的提高。在综合过往的开发经验和这几年的实际入坑经验之后,我决定将其编撰成书,将这些看似零散的技术融合起来。
内容介绍
“虫术”是一门综合性的技术,涉及的知识面很广,为了不让你在一大堆的技术面前感到茫然,我将这门“术”分成了三个运用阶段,一步步由浅入深地进行叙述。
本书共5章,前3章为初阶部分,第4章为中阶部分,第5章为高阶部分。
第1章 爬虫初步
本章首先介绍爬虫在目前大数据生态下的地位,还提供了一份关于学习虫术的详尽的技术线路图,最后讲述爬虫基本的实现方法与实际运用示例,目的在于让读者对虫术建立一个基本的概念并能从示例中引起对这门技术的兴趣。
第2章 Scrapy基础
虫术以Scrapy架构为核心基础,本章对Scrapy的架构和各个模块的作用进行了详细的介绍。
第3章 Scrapy工程管理与部署
本章介绍如何在Scrapy工程中运用Scrapyd将本地工程部署到实际运行环境中,详细地讲述Scrapyd安装配置及其附带的scrapy-client和scrapy-deploy工具的使用方法。
第4章 中阶虫术
本章包含的内容非常丰富,是针对将虫术运用于实际项目展开的。从Scrapy的蜘蛛内部实现开始,深入HTTP底层,实现对Scrapy中间件的支持,运用Selenium或Splash处理棘手的JavaScript网页,最后详细讲述如何处理采集到的数据。
第5章 高阶虫术
本章是对中阶虫术的深化,聚焦于爬虫系统的性能,讲解如何让爬虫变得更加隐蔽,如何让爬虫看懂图片,如何训练它们使之变得更加聪明,最后讲解如何掌握虫术的大招“分布式爬虫”来应对大规模的数据集采工作与数据存储任务。
勘误
本书如有勘误,会在https://github.com/DotNetAge/上发布。由于笔者能力有限,时间仓促,书中难免有错漏,欢迎读者批评指正。
梁睿坤

目录

第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 最后的工作


本书勘误

印次
  • 页码:56  •  行数:17  •  印次: 1

    代码有疑问
    if self.fingerprints in item[‘title’]:
    是不是应该写为
    if item[‘title’] in self.fingerprints:

    x11337 提交于 2019/1/6 11:34:03
    陈晓猛 确认于 2019/1/7 11:30:59

读者评论

  • 给的代码哪些有哪些没有啊

    1111tl发表于 2019/4/30 17:06:07
  • 这就是所谓的“代码兼顾Python 2和Python 3”?

    苏北发表于 2019/2/13 16:45:39
  • Python 3.x 看得想死 服了

    苏北发表于 2019/2/13 16:14:51
  • 大部分都还是在LInux 下和python2.x 下操作,感觉内容有点散乱

    单调了发表于 2018/12/14 18:46:54
  • 您好,请问怎么没有PhantomJs IP代理设置方面的知识?

    xin发表于 2018/10/18 20:39:20

相关博文

相关图书

Unreal Engine 4可视化设计:交互可视化、动画与渲染开发绝艺

Tom Shannon (作者) 龚震宇 (译者)

Shannon回答了有关UE4可视化问题的常见问题,解决了从数据导入和处理到照明、高级材料和渲染等问题。他揭示了UE4与传统渲染系统重要的不同之处,即使它们使用...

 

Scala高性能编程

Vincent Theron (作者) 杨云 (译者)

Scala是一种表达能力非常强的语言,能够用非常简洁的代码表达丰富的业务含义。为了在生产上充分发挥Scala的能力,除了掌握其简洁的语法外,理解Scala在性能...

¥69.00

网络爬虫全解析——技术、原理与实践

罗刚 (作者)

本书介绍了如何开发网络爬虫。内容主要包括开发网络爬虫所需要的Java语法基础和网络爬虫的工作原理,如何使用开源组件HttpClient和爬虫框架Crawler4...

¥49.00

全栈数据之门

任柳江 (作者)

本书以数据分析领域最热的Python语言为主要线索,介绍了数据分析库numpy、Pandas与机器学习库scikit-learn,使用了可视化环境Orange ...

¥49.00

Druid实时大数据分析原理与实践

欧阳辰 刘麒贇 张海雷 高振源 许哲 (作者)

Druid 作为一款开源的实时大数据分析软件,最近几年快速风靡全球互联网公司,特别是对于海量数据和实时性要求高的场景,包括广告数据分析、用户行为分析、数据统计分...

¥59.00

大数据时代的算法:机器学习、人工智能及其典型实例

刘凡平 张启玉 刘刚 (作者)

本书介绍在互联网行业中经常涉及的算法,包括排序算法、查找算法、资源分配算法、路径分析算法、相似度分析算法,以及与机器学习相关的算法,包括数据分类算法、聚类算法、...

¥49.00