![]()
内容推荐 网络爬虫是一种按照一定的规则,自动请求万维网网站并提取网络数据的程序或脚本,它可以代替人力进行信息采集,能够自动采集并高效地利用互联网中的数据,在市场的应用需求中占据着重要的位置。 黑马程序员编著的《解析Python网络爬虫--核心技术Scrapy框架分布式爬虫》以Windows为主要平台,系统全面地讲解了Python网络爬虫的相关知识。主要内容包括:初识爬虫、爬虫的实现原理和技术、网页请求原理、爬取网页数据、数据解析、并发下载、图像识别与文字处理、存储爬虫数据、初识爬虫框架Scrapy、Scrapy终端与核心组件、自动爬取网页的爬虫 CrawSpider、Scrapy-Redis分布式爬虫。 本书适合作为高等院校计算机相关专业程序设计课程教材,也可作为Python网络爬虫的培训教材,以及广大编程开发者的爬虫入门级教材。 目录 第1章 初识爬虫 1.1 爬虫产生背景 1.2 爬虫的概念 1.3 爬虫的用途 1.4 爬虫的分类 1.4.1 通用爬虫和聚焦爬虫 1.4.2 累积式爬虫和增量式爬虫 1.4.3 表层爬虫和深层爬虫 小结 习题 第2章 爬虫的实现原理和技术 2.1 爬虫实现原理 2.1.1 通用爬虫工作原理 2.1.2 聚焦爬虫工作原理 2.2 爬虫爬取网页的详细流程 2.3 通用爬虫中网页的分类 2.4 通用爬虫相关网站文件 2.4.1 robots.txt文件 2.4.2 Sitemap.xml文件 2.5 防爬虫应对策略 2.6 选择Python做爬虫的原因 2.7 案例——使用八爪鱼工具爬取第一个网页 小结 习题 第3章 网页请求原理 3.1 浏览网页过程 3.1.1 统一资源定位符 3.1.2 计算机域名系统 3.2 HTTP网络请求原理 3.2.1 分析浏览器显示完整网页的过程 3.2.2 客户端HTTP请求格式 3.2.3 服务端HTTP响应格式 3.3 HTTP抓包工具Fiddler 3.3.1 Fiddler工作原理 3.3.2 Fiddler下载安装 3.3.3 Fiddler界面详解 3.3.4 Fiddler爬取HTTPS设置 3.3.5 使用Fiddler捕获Chrome的会话 小结 习题 第4章 爬取网页数据 4.1 urllib库概述 4.2 快速使用urllib爬取网页 4.2.1 快速爬取一个网页 4.2.2 分析urlopen()方法 4.2.3 使用HTTPResponse对象 4.2.4 构造Request对象 4.3 使用urllib实现数据传输 4.3.1 URL编码转换 4.3.2 处理GET请求 4.3.3 处理POST请求 4.4 添加特定Headers——请求伪装 4.5 代理服务器 4.5.1 简单的自定义opener 4.5.2 设置代理服务器 4.6 超时设置 4.7 常见的网络异常 4.7.1 URLError异常和捕获 4.7.2 HttpError异常和捕获 4.8 更人性化的requests库 4.8.1 requests库概述 4.8.2 requests库初体验 4.8.3 发送请求 4.8.4 返回响应 4.9 案例——使用urllib库爬取百度贴吧 小结 习题 第5章 数据解析 5.1 网页数据和结构 5.1.1 网页数据格式 5.1.2 网页结构 5.2 数据解析技术 5.3 正则表达式 5.4 XPath与lxml解析库 5.4.1 XPath概述 5.4.2 XPath语法 5.4.3 XPath开发工具 5.4.4 lxml库概述 5.4.5 lxml库的基本使用 5.5 Beautiful Soup 5.5.1 Beautiful Soup概述 5.5.2 构建BeautifulSoup对象 5.5.3 通过操作方法进行解读搜索 5.5.4 通过CSS选择器进行搜索 5.6 JSONPath与json模块 5.6.1 JSON概述 5.6.2 JSON与XML比较 5.6.3 json模块介绍 5.6.4 json模块基本应用 5.6.5 JSONPath简介 5.6.6 JSONPath语法对比 5.6.7 案例——获取拉勾网城市列表 5.7 案例——解析腾讯社会招聘网站的职位信息 5.7.1 明确爬虫爬取目标 5.7.2 分析要解析的数据 5.7.3 使用urllib库爬取社招网数据 5.7.4 使用正则、lxml、bs4解析职位数据 5.7.5 将数据保存到文件中 小结 习题 第6章 并发下载 6.1 多线程爬虫流程分析 6.2 使用queue模块实现多线程爬虫 6.2.1 queue(队列)模块简介 6.2.2 Queue类概述 6.3 协程实现并发爬取 6.3.1 协程爬虫的流程分析 6.3.2 第三方库gevent 6.4 案例——三种技术采集和解析数据对比 6.4.1 单线程实现 6.4.2 多线程实现 6.4.3 协程实现 6.4.4 性能分析 小结 习题 第7章 爬取动态内容 7.1 动态网页介绍 7.2 selenium和PhantomJS概述 7.3 selenium和PhantomJS安装配置 7.4 selenium和PhantomJS的基本应用 7.4.1 入门操作 7.4.2 定位UI元素 7.4.3 鼠标动作链 7.4.4 填充表单 7.4.5 弹窗处理 7.4.6 页面切换 7.4.7 页面前进和后退 7.4.8 获取页面Cookies 7.4.9 页面等待 7.5 案例——模拟豆瓣网站登录 小结 习题 第8章 图像识别与文字处理 8.1 OCR技术概述 8.2 Tesseract引擎的下载和安装 8.3 pytesseract和PIL库概述 8.3.1 pytesseract库概述 8.3.2 PIL库概述 8.4 处理规范格式的文字 8.4.1 读取图像中格式规范的文字 8.4.2 对图片进行阈值过滤和降噪处理 8.4.3 识别图像的中文字符 8.5 处理验证码 8.5.1 验证码分类 8.5.2 简单识别图形验证码 8.6 案例——识别图形验证码 小结 习题 第9章 存储爬虫数据 9.1 数据存储概述 9.2 MongoDB数据库概述 9.2.1 MongoDB的概念 9.2.2 Windows平台安装MongoDB数据库 9.2.3 比较MongoDB和MySQL的术语 9.3 使用PyMongo库存储到数据库 9.3.1 PyMon |