发表于2024-12-21
书名: | Python爬虫开发与项目实战|5894193 |
图书定价: | 79元 |
图书作者: | 范传辉 |
出版社: | 机械工业出版社 |
出版日期: | 2017/6/1 0:00:00 |
ISBN号: | 9787111563877 |
开本: | 16开 |
页数: | 0 |
版次: | 1-1 |
作者简介 |
范传辉,资深网虫,Python开发者,参与开发了多项网络应用,在实际开发中积累了丰富的实战经验,并善于总结,贡献了多篇技术文章广受好评。研究兴趣是网络安全、爬虫技术、数据分析、驱动开发等技术。 "}) |
内容简介 |
随着大数据时代到来,网络信息量也变得更多更大,基于传统搜索引擎的局限性,网络爬虫应运而生,本书从基本的爬虫原理开始讲解,通过介绍Pthyon编程语言和Web前端基础知识引领读者入门,之后介绍动态爬虫原理以及Scrapy爬虫框架,最后介绍大规模数据下分布式爬虫的设计以及PySpider爬虫框架等。 主要特点: l 由浅入深,从Python和Web前端基础开始讲起,逐步加深难度,层层递进。 l 内容详实,从静态网站到动态网站,从单机爬虫到分布式爬虫,既包含基础知识点,又讲解了关键问题和难点分析,方便读者完成进阶。 l 实用性强,本书共有9个爬虫项目,以系统的实战项目为驱动,由浅及深地讲解爬虫开发中所需的知识和技能。 难点详析,对js加密的分析、反爬虫措施的突破、去重方案的设计、分布式爬虫的开发进行了细致的讲解。 |
目录 |
前言 基础篇 第1章 回顾Python编程2 1.1 安装Python2 1.1.1 Windows上安装Python2 1.1.2 Ubuntu上的Python3 1.2 搭建开发环境4 1.2.1 Eclipse+PyDev4 1.2.2 PyCharm10 1.3 IO编程11 1.3.1 文件读写11 1.3.2 操作文件和目录14 1.3.3 序列化操作15 1.4 进程和线程16 1.4.1 多进程16 1.4.2 多线程22 1.4.3 协程25 1.4.4 分布式进程27 1.5 网络编程32 1.5.1 TCP编程33 1.5.2 UDP编程35 1.6 小结36 第2章 Web前端基础37 2.1 W3C标准37 2.1.1 HTML37 2.1.2 CSS47 2.1.3 51 2.1.4 XPath56 2.1.5 JSON61 2.2 HTTP标准61 2.2.1 HTTP请求过程62 2.2.2 HTTP状态码含义62 2.2.3 HTTP头部信息63 2.2.4 Cookie状态管理66 2.2.5 HTTP请求方式66 2.3 小结68 第3章 初识网络爬虫69 3.1 网络爬虫概述69 3.1.1 网络爬虫及其应用69 3.1.2 网络爬虫结构71 3.2 HTTP请求的Python实现72 3.2.1 urllib2/urllib实现72 3.2.2 httplib/urllib实现76 3.2.3 更人性化的Requests77 3.3 小结82 第4章 HTML解析大法83 4.1 初识Firebug83 4.1.1 安装Firebug84 4.1.2 强大的功能84 4.2 正则表达式95 4.2.1 基本语法与使用96 4.2.2 Python与正则102 4.3 强大的BeautifulSoup108 4.3.1 安装BeautifulSoup108 4.3.2 BeautifulSoup的使用109 4.3.3 lxml的XPath解析124 4.4 小结126 第5章 数据存储(无数据库版)127 5.1 HTML正文抽取127 5.1.1 存储为JSON127 5.1.2 存储为CSV132 5.2 多媒体文件抽取136 5.3 Email提醒137 5.4 小结138 第6章 实战项目:基础爬虫139 6.1 基础爬虫架构及运行流程140 6.2 URL管理器141 6.3 HTML下载器142 6.4 HTML解析器143 6.5 数据存储器145 6.6 爬虫调度器146 6.7 小结147 第7章 实战项目:简单分布式爬虫148 7.1 简单分布式爬虫结构148 7.2 控制节点149 7.2.1 URL管理器149 7.2.2 数据存储器151 7.2.3 控制调度器153 7.3 爬虫节点155 7.3.1 HTML下载器155 7.3.2 HTML解析器156 7.3.3 爬虫调度器157 7.4 小结159 中级篇 第8章 数据存储(数据库版)162 8.1 SQLite162 8.1.1 安装SQLite162 8.1.2 SQL语法163 8.1.3 SQLite增删改查168 8.1.4 SQLite事务170 8.1.5 Python操作SQLite171 8.2 MySQL174 8.2.1 安装MySQL174 8.2.2 MySQL基础177 8.2.3 Python操作MySQL181 8.3 更适合爬虫的MongoDB183 8.3.1 安装MongoDB184 8.3.2 MongoDB基础187 8.3.3 Python操作MongoDB194 8.4 小结196 第9章 动态网站抓取197 9.1 Ajax和动态HTML197 9.2 动态爬虫1:爬取影评信息198 9.3 PhantomJS207 9.3.1 安装PhantomJS207 9.3.2 快速入门208 9.3.3 屏幕捕获211 9.3.4 网络监控213 9.3.5 页面自动化214 9.3.6 常用模块和方法215 9.4 Selenium218 9.4.1 安装Selenium219 9.4.2 快速入门220 9.4.3 元素选取221 9.4.4 页面操作222 9.4.5 等待225 9.5 动态爬虫2:爬取去哪网227 9.6 小结230 第10章 Web端协议分析231 10.1 网页登录POST分析231 10.1.1 隐藏表单分析231 10.1.2 加密数据分析234 10.2 验证码问题246 10.2.1 IP代理246 10.2.2 Cookie登录249 10.2.3 传统验证码识别250 10.2.4 人工打码251 10.2.5 滑动验证码252 10.3 www>m>wap252 10.4 小结254 第11章 终端协议分析255 11.1 PC客户端抓包分析255 11.1.1 HTTP Analyzer简介255 11.1.2 虾米音乐PC端API实战分析257 11.2 App抓包分析259 11.2.1 Wireshark简介259 11.2.2 酷我听书App端API实战分析266 11.3 API爬虫:爬取mp3资源信息268 11.4 小结272 第12章 初窥Scrapy爬虫框架273 12.1 Scrapy爬虫架构273 12.2 安装Scrapy275 12.3 创建cnblogs项目276 12.4 创建爬虫模块277 12.5 选择器278 12.5.1 Selector的用法278 12.5.2 HTML解析实现280 12.6 命令行工具282 12.7 定义Item284 12.8 翻页功能286 12.9 构建Item Pipeline287 12.9.1 定制Item Pipeline287 12.9.2 激活Item Pipeline288 12.10 内置数据存储288 12.11 内置图片和文件下载方式289 12.12 启动爬虫294 12.13 强化爬虫297 12.13.1 调试方法297 12.13.2 异常299 12.13.3 控制运行状态300 12.14 小结301 第13章 深入Scrapy爬虫框架302 13.1 再看Spider302 13.2 Item Loader308 13.2.1 Item与Item Loader308 13.2.2 输入与输出处理器309 13.2.3 Item Loader Context310 13.2.4 重用和扩展Item Loader311 13.2.5 内置的处理器312 13.3 再看Item Pipeline314 13.4 请求与响应315 13.4.1 Request对象315 13.4.2 Response对象318 13.5 下载器中间件320 13.5.1 激活下载器中间件320 13.5.2 编写下载器中间件321 13.6 Spider中间件324 13.6.1 激活Spider中间件324 13.6.2 编写Spider中间件325 13.7 扩展327 13.7.1 配置扩展327 13.7.2 定制扩展328 13.7.3 内置扩展332 13.8 突破反爬虫332 13.8.1 UserAgent池333 13.8.2 禁用Cookies333 13.8.3 设置下载延时与自动限速333 13.8.4 代理IP池334 13.8.5 Tor代理334 13.8.6 分布式下载器:Crawlera337 13.8.7 Google cache338 13.9 小结339 第14章 实战项目:Scrapy爬虫340 14.1 创建知乎爬虫340 14.2 定义Item342 14.3 创建爬虫模块343 14.3.1 登录知乎343 14.3.2 解析功能345 14.4 Pipeline351 14.5 优化措施352 14.6 部署爬虫353 14.6.1 Scrapyd354 14.6.2 Scrapyd-client356 14.7 小结357 深入篇 第15章 增量式爬虫360 15.1 去重方案360 15.2 BloomFilter算法361 15.2.1 BloomFilter原理361 15.2.2 Python实现BloomFilter363 15.3 Scrapy和BloomFilter364 15.4 小结366 第16章 分布式爬虫与Scrapy367 16.1 Redis基础367 16.1.1 Redis简介367 16.1.2 Redis的安装和配置368 16.1.3 Redis数据类型与操作372 16.2 Python和Redis375 16.2.1 Python操作Redis375 16.2.2 Scrapy集成Redis384 16.3 MongoDB集群385 16.4 小结390 第17章 实战项目:Scrapy分布式爬虫391 17.1 创建云起书院爬虫391 17.2 定义Item393 17.3 编写爬虫模块394 17.4 Pipeline395 17.5 应对反爬虫机制397 17.6 去重优化400 17.7 小结401 第18章 人性化PySpider爬虫框架403 18.1 PySpider与Scrapy403 18.2 安装PySpider404 18.3 创建豆瓣爬虫405 18.4 选择器409 18.4.1 PyQuery的用法409 18.4.2 解析数据411 18.5 Ajax和HTTP请求415 18.5.1 Ajax爬取415 18.5.2 HTTP请求实现417 18.6 PySpider和PhantomJS417 18.6.1 使用PhantomJS418 18.6.2 运行420 18.7 数据存储420 18.8 PySpider爬虫架构422 18.9 小结423 |