书刊介绍
《Python爬虫开发 从入门到实战(微课版)》内容简介
本书较为全面地介绍了定向爬虫的开发过程、各种反爬虫机制的破解方法和爬虫开发的相关技巧。全书共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、本章小结