作品简介

本书较为全面地介绍了定向爬虫的开发过程、各种反爬虫机制的破解方法和爬虫开发的相关技巧。全书共13章,包括绪论、Python基础、正则表达式与文件操作、简单的网页爬虫开发、高性能HTML内容解析、Python与数据库、异步加载与请求头、模拟登录与验证码、抓包与中间人爬虫、Android原生App爬虫、Scrapy、Scrapy高级应用、爬虫开发中的法律和道德问题等。除第1、12、13章外的其他章末尾都有动手实践,以帮助读者巩固本章和前面章节所学的内容。针对书中的疑难内容,还配有视频讲解,以便更好地演示相关操作。

本书适合作为高校计算机类专业的教材,也适合作为网络爬虫技术爱好者的自学参考书。

谢乾坤,网易高级数据挖掘工程师。前极客学院爬虫课程讲师,以网名『青南』与『kingname』开设爬虫开发课程,受众超过10万。多年爬虫开发经验,对爬虫开发有独到的理解。曾在多家知名公司从事爬虫开发工作,并为国内外众多基金公司与投资公司提供数据支持。

作品目录

  • 内容提要
  • 前言
  • 第1章 绪论
  • 1.1 爬虫
  • 1.2 爬虫可以做什么
  • 1.2.1 收集数据
  • 1.2.2 尽职调查
  • 1.2.3 刷流量和秒杀
  • 1.3 爬虫开发技术
  • 第2章 Python基础
  • 2.1 Python的安装和运行
  • 2.1.1 在Windows中安装Python
  • 2.1.2 在Mac OS中安装Python
  • 2.1.3 在Linux中安装Python
  • 2.2 Python开发环境
  • 2.2.1 PyCharm介绍与安装
  • 2.2.2 运行代码
  • 2.3 Python的数据结构和控制结构
  • 2.3.1 整数、浮点数和变量
  • 2.3.2 字符串、列表、元组
  • 2.3.3 数据的读取
  • 2.3.4 字典与集合
  • 2.3.5 条件语句
  • 2.3.6 for循环与while循环
  • 2.4 函数与类
  • 2.4.1 函数
  • 2.4.2 类与面向对象编程
  • 2.5 阶段案例——猜数游戏
  • 2.5.1 需求分析
  • 2.5.2 核心代码构建
  • 2.5.3 调试与运行
  • 2.6 本章小结
  • 2.7 动手实践
  • 第3章 正则表达式与文件操作
  • 3.1 正则表达式
  • 3.1.1 正则表达式的基本符号
  • 3.1.2 在Python中使用正则表达式
  • 3.1.3 正则表达式提取技巧
  • 3.2 Python文件操作
  • 3.2.1 使用Python读/写文本文件
  • 3.2.2 使用Python读/写CSV文件
  • 3.3 阶段案例——半自动爬虫开发
  • 3.3.1 需求分析
  • 3.3.2 核心代码构建
  • 3.3.3 调试与运行
  • 3.4 本章小结
  • 3.5 动手实践
  • 第4章 简单的网页爬虫开发
  • 4.1 使用Python获取网页源代码
  • 4.1.1 Python的第三方库
  • 4.1.2 requests介绍与安装
  • 4.1.3 使用requests获取网页源代码
  • 4.1.4 结合requests与正则表达式
  • 4.2 多线程爬虫
  • 4.2.1 多进程库(multiprocessing)
  • 4.2.2 开发多线程爬虫
  • 4.3 爬虫的常见搜索算法
  • 4.3.1 深度优先搜索
  • 4.3.2 广度优先搜索
  • 4.3.3 爬虫搜索算法的选择
  • 4.4 阶段案例——小说网站爬虫开发
  • 4.4.1 需求分析
  • 4.4.2 核心代码构建
  • 4.4.3 调试与运行
  • 4.5 本章小结
  • 4.6 动手实践
  • 第5章 高性能HTML内容解析
  • 5.1 HTML基础
  • 5.2 XPath
  • 5.2.1 XPath的介绍
  • 5.2.2 lxml的安装
  • 5.2.3 XPath语法讲解
  • 5.2.4 使用Google Chrome浏览器辅助构造XPath
  • 5.3 Beautiful Soup4
  • 5.3.1 BS4的安装
  • 5.3.2 BS4语法讲解
  • 5.4 阶段案例——大麦网演出爬虫
  • 5.4.1 需求分析
  • 5.4.2 核心代码构建
  • 5.4.3 调试与运行
  • 5.5 本章小结
  • 5.6 动手实践
  • 第6章 Python与数据库
  • 6.1 MongoDB
  • 6.1.1 MongoDB的安装
  • 6.1.2 PyMongo的安装与使用
  • 6.1.3 使用RoboMongo执行MongoDB命令
  • 6.2 Redis
  • 6.2.1 环境搭建
  • 6.2.2 Redis交互环境的使用
  • 6.2.3 Redis-py
  • 6.3 MongoDB的优化建议
  • 6.3.1 少读少写少更新
  • 6.3.2 能用Redis就不用MongoDB
  • 6.4 阶段案例
  • 6.4.1 需求分析
  • 6.4.2 核心代码构建
  • 6.4.3 调试与运行
  • 6.5 本章小结
  • 6.6 动手实践
  • 第7章 异步加载与请求头
  • 7.1 异步加载
  • 7.1.1 AJAX技术介绍
  • 7.1.2 JSON介绍与应用
  • 7.1.3 异步GET与POST请求
  • 7.1.4 特殊的异步加载
  • 7.1.5 多次请求的异步加载
  • 7.1.6 基于异步加载的简单登录
  • 7.2 请求头(Headers)
  • 7.2.1 请求头的作用
  • 7.2.2 伪造请求头
  • 7.3 模拟浏览器
  • 7.3.1 Selenium介绍
  • 7.3.2 Selenium安装
  • 7.3.3 Selenium的使用
  • 7.4 阶段案例
  • 7.4.1 需求分析
  • 7.4.2 核心代码构建
  • 7.4.3 调试与运行
  • 7.5 本章小结
  • 7.6 动手实践
  • 第8章 模拟登录与验证码
  • 8.1 模拟登录
  • 8.1.1 使用Selenium模拟登录
  • 8.1.2 使用Cookies登录
  • 8.1.3 模拟表单登录
  • 8.2 验证码
  • 8.2.1 肉眼打码
  • 8.2.2 自动打码
  • 8.3 阶段案例——自动登录果壳网
  • 8.3.1 需求分析
  • 8.3.2 核心代码构建
  • 8.3.3 运行与调试
  • 8.4 本章小结
  • 8.5 动手实践
  • 第9章 抓包与中间人爬虫
  • 9.1 数据抓包
  • 9.1.1 Charles的介绍和使用
  • 9.1.2 App爬虫和小程序爬虫
  • 9.2 中间人爬虫
  • 9.2.1 mitmproxy的介绍和安装
  • 9.2.2 mitmproxy的使用
  • 9.2.3 使用Python定制mitmproxy
  • 9.3 阶段案例——Keep热门
  • 9.3.1 需求分析
  • 9.3.2 核心代码构建
  • 9.3.3 调试运行
  • 9.4 本章小结
  • 9.5 动手实践
  • 第10章 Android原生App爬虫
  • 10.1 实现原理
  • 10.1.1 环境搭建
  • 10.1.2 使用Python操纵手机
  • 10.1.3 选择器
  • 10.1.4 操作
  • 10.2 综合应用
  • 10.2.1 单设备应用
  • 10.2.2 多设备应用(群控)
  • 10.3 阶段案例——BOSS直聘爬虫
  • 10.3.1 需求分析
  • 10.3.2 核心代码构建
  • 10.3.3 调试与运行
  • 10.4 本章小结
  • 10.5 动手实践
  • 第11章 Scrapy
  • 11.1 Scrapy的安装
  • 11.1.1 在Windows下安装Scrapy
  • 11.1.2 在Linux下安装Scrapy
  • 11.1.3 在Mac OS下安装Scrapy
  • 11.2 Scrapy的使用
  • 11.2.1 创建项目
  • 11.2.2 在Scrapy中使用XPath
  • 11.3 Scrapy与MongoDB
  • 11.3.1 items和pipelines的设置
  • 11.3.2 在Scrapy中使用MongoDB
  • 11.4 Scrapy与Redis
  • 11.4.1 Scrapy_redis的安装和使用
  • 11.4.2 使用Redis缓存网页并自动去重
  • 11.5 阶段案例——博客爬虫
  • 11.5.1 需求分析
  • 11.5.2 核心代码构建
  • 11.5.3 调试与运行
  • 11.6 本章小结
  • 11.7 动手实践
  • 第12章 Scrapy高级应用
  • 12.1 中间件(Middleware)
  • 12.1.1 下载器中间件
  • 12.1.2 爬虫中间件
  • 12.2 爬虫的部署
  • 12.2.1 Scrapyd介绍与使用
  • 12.2.2 权限管理
  • 12.3 分布式架构
  • 12.3.1 分布式架构介绍
  • 12.3.2 如何选择Master
  • 12.4 阶段案例
  • 12.5 本章小结
  • 第13章 爬虫开发中的法律和道德问题
  • 13.1 法律问题
  • 13.1.1 数据采集的法律问题
  • 13.1.2 数据的使用
  • 13.1.3 注册及登录可能导致的法律问题
  • 13.1.4 数据存储
  • 13.1.5 内幕交易
  • 13.2 道德协议
  • 13.2.1 robots.txt协议
  • 13.2.2 爬取频率
  • 13.2.3 不要开源爬虫的源代码
  • 13.3 本章小结
展开全部