python爬虫开发与项目实战pdf_python爬虫开发与项目实战PDF高清文档下载

随着大数据时代到来,网络信息量也变得更多更大,基于传统搜索引擎的局限性,网络爬虫应运而生,本书从基本的爬虫原理开始讲解,通过介绍Pthyon编程语言和Web前端基础知识引领读者入门,之后介绍动态爬虫原理以及Scrapy爬虫框架,最后介绍大规模数据下分布式爬虫的设计以及PySpider爬虫框架等。

主要特点:

由浅入深,从Python和Web前端基础开始讲起,逐步加深难度,层层递进。

内容详实,从静态网站到动态网站,从单机爬虫到分布式爬虫,既包含基础知识点,又讲解了关键问题和难点分析,方便读者完成进阶。

实用性强,本书共有9个爬虫项目,以系统的实战项目为驱动,由浅及深地讲解爬虫开发中所需的知识和技能。

难点详析,对js加密的分析、反爬虫措施的突破、去重方案的设计、分布式爬虫的开发进行了细致的讲解。

目录 · · · · · ·

前言

基础篇

第1章 回顾Python编程 2

1.1 安装Python 2

1.1.1 Windows上安装Python 2

1.1.2 Ubuntu上的Python 3

1.2 搭建开发环境 4

1.2.1 Eclipse+PyDev 4

1.2.2 PyCharm 10

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 HTML 37

2.1.2 CSS 47

2.1.3 JavaScript 51

2.1.4 XPath 56

2.1.5 JSON 61

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 更人性化的Requests 77

3.3 小结 82

第4章 HTML解析大法 83

4.1 初识Firebug 83

4.1.1 安装Firebug 84

4.1.2 强大的功能 84

4.2 正则表达式 95

4.2.1 基本语法与使用 96

4.2.2 Python与正则 102

4.3 强大的BeautifulSoup 108

4.3.1 安装BeautifulSoup 108

4.3.2 BeautifulSoup的使用 109

4.3.3 lxml的XPath解析 124

4.4 小结 126

第5章 数据存储(无数据库版) 127

5.1 HTML正文抽取 127

5.1.1 存储为JSON 127

5.1.2 存储为CSV 132

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 SQLite 162

8.1.1 安装SQLite 162

8.1.2 SQL语法 163

8.1.3 SQLite增删改查 168

8.1.4 SQLite事务 170

8.1.5 Python操作SQLite 171

8.2 MySQL 174

8.2.1 安装MySQL 174

8.2.2 MySQL基础 177

8.2.3 Python操作MySQL 181

8.3 更适合爬虫的MongoDB 183

8.3.1 安装MongoDB 184

8.3.2 MongoDB基础 187

8.3.3 Python操作MongoDB 194

8.4 小结 196

第9章 动态网站抓取 197

9.1 Ajax和动态HTML 197

9.2 动态爬虫1:爬取影评信息 198

9.3 PhantomJS 207

9.3.1 安装PhantomJS 207

9.3.2 快速入门 208

9.3.3 屏幕捕获 211

9.3.4 网络监控 213

9.3.5 页面自动化 214

9.3.6 常用模块和方法 215

9.4 Selenium 218

9.4.1 安装Selenium 219

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]wap 252

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 安装Scrapy 275

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 定义Item 284

12.8 翻页功能 286

12.9 构建Item Pipeline 287

12.9.1 定制Item Pipeline 287

12.9.2 激活Item Pipeline 288

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 再看Spider 302

13.2 Item Loader 308

13.2.1 Item与Item Loader 308

13.2.2 输入与输出处理器 309

13.2.3 Item Loader Context 310

13.2.4 重用和扩展Item Loader 311

13.2.5 内置的处理器 312

13.3 再看Item Pipeline 314

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 禁用Cookies 333

13.8.3 设置下载延时与自动限速 333

13.8.4 代理IP池 334

13.8.5 Tor代理 334

13.8.6 分布式下载器:Crawlera 337

13.8.7 Google cache 338

13.9 小结 339

第14章 实战项目:Scrapy爬虫 340

14.1 创建知乎爬虫 340

14.2 定义Item 342

14.3 创建爬虫模块 343

14.3.1 登录知乎 343

14.3.2 解析功能 345

14.4 Pipeline 351

14.5 优化措施 352

14.6 部署爬虫 353

14.6.1 Scrapyd 354

14.6.2 Scrapyd-client 356

14.7 小结 357

深入篇

第15章 增量式爬虫 360

15.1 去重方案 360

15.2 BloomFilter算法 361

15.2.1 BloomFilter原理 361

15.2.2 Python实现BloomFilter 363

15.3 Scrapy和BloomFilter 364

15.4 小结 366

第16章 分布式爬虫与Scrapy 367

16.1 Redis基础 367

16.1.1 Redis简介 367

16.1.2 Redis的安装和配置 368

16.1.3 Redis数据类型与操作 372

16.2 Python和Redis 375

16.2.1 Python操作Redis 375

16.2.2 Scrapy集成Redis 384

16.3 MongoDB集群 385

16.4 小结 390

第17章 实战项目:Scrapy分布式爬虫 391

17.1 创建云起书院爬虫 391

17.2 定义Item 393

17.3 编写爬虫模块 394

17.4 Pipeline 395

17.5 应对反爬虫机制 397

17.6 去重优化 400

17.7 小结 401

第18章 人性化PySpider爬虫框架 403

18.1 PySpider与Scrapy 403

18.2 安装PySpider 404

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和PhantomJS 417

18.6.1 使用PhantomJS 418

18.6.2 运行JavaScript 420

18.7 数据存储 420

18.8 PySpider爬虫架构 422

18.9 小结 423

初级教程看:https://download.csdn.net/download/dwf1354046363/20818468 9 网络爬虫进阶之 Selenium 篇 9.1 Selenium 简介 . . . . . . . . 9.1.1 Selenium 是什么 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 9.1.2 Selenium 特点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 9.1.3 基本安装与使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 9.1.4 各种浏览器驱动下载地址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 9.1.5 Selenium 初试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 9.2 定位元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 9.2.1 基本的定位方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 9.2.2 使用 By 定位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 9.2.3 定位一组元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 9.3 控制浏览器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 9.3.1 控制浏览器窗口大小 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 9.3.2 控制浏览器后退、前进 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 9.3.3 模拟浏览器刷新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 9.4 WebDriver 中的常用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 9.5 设置元素等待 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 9.5.1 显式等待 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 9.5.2 隐式等待 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 9.6 多表单切换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 9.7 多窗口切换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 9.8 其他操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
内容简介   本书内容上涵盖了用android开发的大部分场景,从android基础介绍、环境搭建、sdk介绍、market使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上,讲解了5个android平台下的完整综合实例及源代码分析,分别是rss阅读器、基于google map的个人gps、豆瓣网(web 2.0)客户端、在线音乐播放器、手机信息查看助手。本书注重对实际动手能力的指导,在遵循技术研发知识体系的严密性同时,在容易产生错误、不易理解的环节配以了翔实的开发情景截图,并将重要的知识点和开发技巧以“小实验”、“小提醒”、“小知识”、“注意”等的活泼形式呈现给读者。在程序实例的讲解方面,主要将实例安插在android开发的精髓知识章节,这为初学者学习与实践结合提供了很好的指导。.    本书配套有400多分钟的全程开发视频光盘,指导读者快速、无障碍地学通android实战开发技术。..    本书适合具备一定软件开发经验,想快速进入android开发领域的程序员;具备一些手机开发经验的开发者和android开发爱好者学习用书;也适合作为相关培训学校的android培训教材。... 目录 第1章 掀起你的盖头来——初识android. 1 1.1 认识android 1 1.2 android的背景 2 1.2.1 android的历史 2 1.2.2 android的发展 2 1.3 我的android我做主 2 1.3.1 开发基于android平台的应用 3 1.3.2 参加android开发者大赛 3 1.3.3 个人英雄主义再现——得到更多人的认可和尊重 3 1.3.4 获得应有的收益——android market 3 1.4 真实体验——android模拟器 4 1.4.1 模拟器概述 4 1.4.2 模拟器和真机的区别 4 1.4.3 模拟器使用注意事项 4 1.5 更上一层楼——加入android开发社区 5 1.6 本章小结 6 第2章 工欲善其事 必先利其器——搭建android开发环境 7 2.1 开发android应用前的准备 7 2.1.1 android开发系统要求 7 2.1.2 android软件开发包 7 .2.1.3 其他注意事项 8 2.2 windows开发环境搭建 8 2.2.1 jdk、eclipse、android sdk软件安装 8 2.2.2 sdk的家在哪里——设定android sdk home 14 2.2.3 真的准备好了吗——开发环境验证 14 2.2.4 创建android 虚拟设备(avd) 15 2.3 linux一族——ubuntu开发环境搭建 17 2.3.1 java、eclipse和adt插件安装 17 2.3.2 设定android sdk home 23 2.4 mac os一族——苹果开发环境搭建 24 2.5 本章小结 24 第3章 清点可用资本——android sdk介绍 25 3.1 android sdk 基础 25 3.2 深入探寻android sdk的密码 25 3.2.1 android sdk目录结构 25 3.2.2 android.jar及内部结构 27 3.2.3 sdk文档及阅读技巧 27 3.2.4 先来热热身——android sdk例子解析 28 3.2.5 sdk提供的工具介绍 31 3.3 android典型包分析 33 3.3.1 开发的基石——android api核心开发包介绍 33 3.3.2 拓展开发外延——android可选api介绍 34 3.4 本章小结 34 第4章 赚钱的市场——android market及应用发布 35 4.1 google market产生背景与目的 35 4.2 体验“选货”的乐趣——在g1上体验market的使用 35 4.3 android开发活动及特色应用 37 4.3.1 开发应用的领域 37 4.3.2 android market特色应用一览 38 4.4 你也可以做东家——申请market账号 43 4.4.1 卖东西要先入伙——准备工作 43 4.4.2 入伙过程——申请 44 4.5 开张了——在market上发布应用 45 4.5.1 发布时可能遇到的错误 45 4.5.2 卖东西也要签名——生成签名文件 46 4.5.3 打包、签名、发布应用 48 4.6 本章小结 51 第5章 千里之行 始于足下——第一个应用helloworld 52 5.1 helloworld应用分析 52 5.1.1 新建一个andr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值