主编推荐语
本书从原理到实践,循序渐进地讲述了使用Python开发网络爬虫的核心技术。
内容简介
全书从逻辑上可分为基础篇、实战篇和爬虫框架篇三部分。基础篇主要介绍了编写网络爬虫所需的基础知识,包括网站分析、数据抓取、数据清洗和数据入库。网站分析讲述如何使用Chrome和Fiddler抓包工具对网站做全面分析;数据抓取介绍了Python爬虫模块Urllib和Requests的基础知识;数据清洗主要介绍字符串操作、正则和BeautifulSoup的使用;数据入库讲述了MySQL和MongoDB的操作,通过ORM框架SQLAlchemy实现数据持久化,进行企业级开发。实战篇深入讲解了分布式爬虫、爬虫软件的开发、12306抢票程序和微博爬取等。框架篇主要讲述流行的爬虫框架Scrapy,并以Scrapy与Selenium、Splash、Redis结合的项目案例,让读者深层次了解Scrapy的使用。此外,本书还介绍了爬虫的上线部署、如何自己动手开发一款爬虫框架、反爬虫技术的解决方案等内容。
本书使用Python 3.X编写,技术先进,项目丰富,适合欲从事爬虫工程师和数据分析师岗位的初学者、大学生和研究生使用,也很适合有一些网络爬虫编写经验,但希望更加全面、深入理解Python爬虫的开发人员使用。
目录
- 版权信息
- 内容简介
- 作者简介
- 前言
- 第1章 理解网络爬虫
- 1.1 爬虫的定义
- 1.2 爬虫的类型
- 1.3 爬虫的原理
- 1.4 爬虫的搜索策略
- 1.5 爬虫的合法性与开发流程
- 1.6 本章小结
- 第2章 爬虫开发基础
- 2.1 HTTP与HTTPS
- 2.2 请求头
- 2.3 Cookies
- 2.4 HTML
- 2.5 JavaScript
- 2.6 JSON
- 2.7 Ajax
- 2.8 本章小结
- 第3章 Chrome分析网站
- 3.1 Chrome开发工具
- 3.2 Elements标签
- 3.3 Network标签
- 3.4 分析QQ音乐
- 3.5 本章小结
- 第4章 Fiddler抓包
- 4.1 Fiddler介绍
- 4.2 Fiddler安装配置
- 4.3 Fiddler抓取手机应用
- 4.4 Toolbar工具栏
- 4.5 Web Session列表
- 4.6 View选项视图
- 4.7 Quickexec命令行
- 4.8 本章小结
- 第5章 爬虫库Urllib
- 5.1 Urllib简介
- 5.2 发送请求
- 5.3 复杂的请求
- 5.4 代理IP
- 5.5 使用Cookies
- 5.6 证书验证
- 5.7 数据处理
- 5.8 本章小结
- 第6章 爬虫库Requests
- 6.1 Requests简介及安装
- 6.2 请求方式
- 6.3 复杂的请求方式
- 6.4 下载与上传
- 6.5 本章小结
- 第7章 Requests-Cache爬虫缓存
- 7.1 简介及安装
- 7.2 在Requests中使用缓存
- 7.3 缓存的存储机制
- 7.4 本章小结
- 第8章 爬虫库Requests-HTML
- 8.1 简介及安装
- 8.2 请求方式
- 8.3 数据清洗
- 8.4 Ajax动态数据抓取
- 8.5 本章小结
- 第9章 网页操控与数据爬取
- 9.1 了解Selenium
- 9.2 安装Selenium
- 9.3 网页元素定位
- 9.4 网页元素操控
- 9.5 常用功能
- 9.6 实战:百度自动答题
- 9.7 本章小结
- 第10章 手机App数据爬取
- 10.1 Appium简介及原理
- 10.2 搭建开发环境
- 10.3 连接Android系统
- 10.4 App的元素定位
- 10.5 App的元素操控
- 10.6 实战:淘宝商品采集
- 10.7 本章小结
- 第11章 Splash、Mitmproxy与Aiohttp
- 11.1 Splash动态数据抓取
- 11.2 Mitmproxy抓包
- 11.3 Aiohttp高并发抓取
- 11.4 本章小结
- 第12章 验证码识别
- 12.1 验证码的类型
- 12.2 OCR技术
- 12.3 第三方平台
- 12.4 本章小结
- 第13章 数据清洗
- 13.1 字符串操作
- 13.2 正则表达式
- 13.3 BeautifulSoup数据清洗
- 13.4 本章小结
- 第14章 文档数据存储
- 14.1 CSV数据的写入和读取
- 14.2 Excel数据的写入和读取
- 14.3 Word数据的写入和读取
- 14.4 本章小结
- 第15章 ORM框架
- 15.1 SQLAlchemy介绍与安装
- 15.2 连接数据库
- 15.3 创建数据表
- 15.4 添加数据
- 15.5 更新数据
- 15.6 查询数据
- 15.7 本章小结
- 第16章 MongoDB数据库操作
- 16.1 MongoDB介绍
- 16.2 MogoDB的安装及使用
- 16.3 连接MongoDB数据库
- 16.4 添加文档
- 16.5 更新文档
- 16.6 查询文档
- 16.7 本章小结
- 第17章 实战:爬取51Job招聘信息
- 17.1 项目分析
- 17.2 获取城市编号
- 17.3 获取招聘职位总页数
- 17.4 爬取每个职位信息
- 17.5 数据存储
- 17.6 爬虫配置文件
- 17.7 本章小结
- 第18章 实战:分布式爬虫——QQ音乐
- 18.1 项目分析
- 18.2 歌曲下载
- 18.3 歌手的歌曲信息
- 18.4 分类歌手列表
- 18.5 全站歌手列表
- 18.6 数据存储
- 18.7 分布式爬虫
- 18.8 本章小结
- 第19章 实战:12306抢票爬虫
- 19.1 项目分析
- 19.2 验证码验证
- 19.3 用户登录与验证
- 19.4 查询车次
- 19.5 预订车票
- 19.6 提交订单
- 19.7 生成订单
- 19.8 本章小结
- 第20章 实战:玩转微博
- 20.1 项目分析
- 20.2 用户登录
- 20.3 用户登录(带验证码)
- 20.4 关键词搜索热门微博
- 20.5 发布微博
- 20.6 关注用户
- 20.7 点赞和转发评论
- 20.8 本章小结
- 第21章 实战:微博爬虫软件开发
- 21.1 GUI库及PyQt5的安装与配置
- 21.2 项目分析
- 21.3 软件主界面
- 21.4 相关服务界面
- 21.5 微博采集界面
- 21.6 微博发布界面
- 21.7 微博爬虫功能
- 21.8 本章小结
- 第22章 Scrapy爬虫开发
- 22.1 认识与安装Scrapy
- 22.2 Scrapy爬虫开发示例
- 22.3 Spider的编写
- 22.4 Items的编写
- 22.5 Item Pipeline的编写
- 22.6 Selectors的编写
- 22.7 文件下载
- 22.8 本章小结
- 第23章 Scrapy扩展开发
- 23.1 剖析Scrapy中间件
- 23.2 自定义中间件
- 23.3 实战:Scrapy+Selenium爬取豆瓣电影评论
- 23.4 实战:Scrapy+Splash爬取B站动漫信息
- 23.5 实战:Scrapy+Redis分布式爬取猫眼排行榜
- 23.6 分布式爬虫与增量式爬虫
- 23.7 本章小结
- 第24章 实战:爬取链家楼盘信息
- 24.1 项目分析
- 24.2 创建项目
- 24.3 项目配置
- 24.4 定义存储字段
- 24.5 定义管道类
- 24.6 编写爬虫规则
- 24.7 本章小结
- 第25章 实战:QQ音乐全站爬取
- 25.1 项目分析
- 25.2 项目创建与配置
- 25.3 定义存储字段和管道类
- 25.4 编写爬虫规则
- 25.5 本章小结
- 第26章 爬虫的上线部署
- 26.1 非框架式爬虫部署
- 26.2 框架式爬虫部署
- 26.3 本章小结
- 第27章 反爬虫的解决方案
- 27.1 常见的反爬虫技术
- 27.2 基于验证码的反爬虫
- 27.3 基于请求参数的反爬虫
- 27.4 基于请求头的反爬虫
- 27.5 基于Cookies的反爬虫
- 27.6 本章小结
- 第28章 自己动手开发爬虫框架
- 28.1 框架设计说明
- 28.2 异步爬取方式
- 28.3 数据清洗机制
- 28.4 数据存储机制
- 28.5 实战:用自制框架爬取豆瓣电影
- 28.6 本章小结
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。