目录 第1章绪论1 1.1数据采集概述1 1.1.1什么是数据采集1 1.1.2数据采集的典型 应用场景2 1.1.3数据采集技术框架3 1.1.4数据采集面临的 挑战6 1.2网络爬虫概述6 1.2.1什么是网络爬虫6 1.2.2网络爬虫的应用6 1.2.3网络爬虫的结构7 1.2.4网络爬虫的组成7 1.2.5网络爬虫的类型8 1.2.6实现网络爬虫的 技术10 1.3Scrapy爬虫10 1.3.1Scrapy框架10 1.3.2Scrapy的常用 组件11 1.3.3Scrapy工作流12 1.3.4其他Python框架12 1.3.5Scrapy的安装与 配置13 1.3.6Windows 7下的 安装配置13 1.3.7Linux(Cent OS) 下的安装配置18 本章小结22 习题22第2章采集网页数据23 2.1采集网页分析23 2.1.1HTTP概述23 2.1.2HTTP消息23 2.2用Python实现HTTP 请求25 2.2.1urllib3/urllib的 实现25 2.2.2httplib/urllib的 实现27 2.2.3第三方库Requests 方式27 2.3静态网页采集29 2.3.1寻找数据特征30 2.3.2获取响应内容31 2.3.3定制Requests32 2.3.4代码解析35 2.4动态网页采集37 2.4.1找到JavaScript 请求的数据接口38 2.4.2请求和解析数据 接口数据41 2.5实验1: HTML网页采集42 2.5.1新建项目42 2.5.2编写代码43 2.5.3运行程序44 本章小结45 习题45第3章解析采集到的网页47 3.1使用正则表达式解析47 3.1.1基本语法与使用47 3.1.2Python与正则 表达式48 3.2使用Beautiful Soup解析52 3.2.1Python网页解析器52 3.2.2Beautiful Soup第 三方库53 3.3使用lxml解析72 3.3.1安装lxml72 3.3.2XPath语言72 3.3.3使用lxml74 3.4解析方法的优缺点对比76 3.5实验2: 使用正则表达式 解析采集的网页77 3.5.1目标网站分析77 3.5.2编写代码78 3.5.3运行结果79 3.6实验3: 使用Beautiful Soup 解析采集的网页80 3.6.1目标网站分析80 3.6.2编写代码81 3.6.3运行结果83 本章小结84 习题85第4章存储采集到的数据86 4.1HTML正文抽取86 4.1.1存储为JSON格式86 4.1.2存储为CSV格式90 4.2MySQL数据库91 4.2.1安装MySQL92 4.2.2与Python整合94 4.2.3在网络数据采集中 使用MySQL97 4.3更适合网络数据采集的 MongoDB103 4.3.1安装MongoDB103 4.3.2MongoDB基础105 4.3.3Python操作 MongoDB107 4.4实验4: 使用MongoDB 存储网络采集的数据108 4.4.1网站分析109 4.4.2获取首页数据110 4.4.3解析数据111 4.4.4存储到MongoDB112 4.5实验5: 采集数据并 存储到MySQL114 4.5.1准备工作114 4.5.2编写代码115 4.5.3运行结果117 本章小结118 习题118第5章基础网络数据采集119 5.1基础网络数据采集的 架构及运行流程119 5.2URL管理器121 5.2.1URL管理器的 主要功能121 5.2.2URL管理器的 实现方式121 5.3HTML下载器123 5.3.1下载方法123 5.3.2注意事项124 5.4HTML解析器124 5.5数据存储器126 5.6数据调度器127 5.7实验6: Scrapy基础网络 数据采集128 5.7.1创建采集模块128 5.7.2启动程序129 5.7.3控制运行状态131 本章小结136 习题136第6章分布式网络数据采集137 6.1分布式运行结构137 6.1.1分布式网络数据 采集分析137 6.1.2简单分布式架构138 6.1.3工作机制138 6.2控制节点140 6.2.1URL管理器140 6.2.2数据存储器142 6.2.3控制调度器145 6.3采集节点148 6.3.1HTML下载器149 6.3.2HTML解析器149 6.3.3网络数据采集 调度器150 6.4反爬技术151 6.4.1反爬问题152 6.4.2反爬机制152 6.4.3浏览器伪装技术159 6.5实验7: Scrapy分布式 网络数据采集161 6.5.1创建起点数据 采集项目161 6.5.2定义Item163 6.5.3编写网络数据 采集模块164 6.5.4Pipeline166 6.5.5应对反爬机制168 6.5.6去重优化171 本章小结173 习题173第7章登录表单与验证码的 数据采集174 7.1网页登录表单174 7.1.1登录表单处理175 7.1.2加密数据分析180 7.1.3Cookie的使用184 7.2验证码的处理185 7.2.1什么是验证码185 7.2.2人工处理验证码186 7.2.3OCR处理验证码189 7.3实验8: Scrapy模拟采集 豆瓣网数据191 7.3.1分析豆瓣登录191 7.3.2编写代码192 7.3.3实验调试与运行194 7.3.4问题处理195 本章小结196 习题196第8章并行多线程网络数据 采集198 8.1多线程网络数据采集198 8.1.11000个网站网页198 8.1.2串行采集199 8.1.3多线程网络数据 采集的工作原理199 8.2多进程网络数据采集203 8.2.1线程和进程如何 工作203 8.2.2实现多进程采集204 8.3实验9: Scrapy天气数据 采集208 8.3.1创建项目208 8.3.2定义Item209 8.3.3编写采集天气数据 的程序209 8.3.4运行程序验证 数据211 8.3.5保存采集到的 数据211 8.3.6运行程序213 本章小结215 习题215