Python网络数据采集pdf

图书网 2018年1月9日10:53:421 3.8K2
摘要

网络上的数据量越来越大,单靠浏览网页获取信息越来越困难,如何有效地提取并利用信息已成为一个巨大的挑战。本书采用简洁强大的Python语言,全面介绍网络数据采集技术,教你从不同形式的网络资源中自由地获取数据。你将学会如何使用Python脚本和网络API一次性采集并处理成千上万个网页上的数据。

本书适合熟悉Python的程序员、安全专业人士、网络管理员阅读。书中不仅介绍了网络数据采集的基本原理,还深入探讨了更高级的主题,比如分析原始数据、用网络爬虫测试网站等。此外,书中还提供了详细的代码示例,以帮助你更好地理解书中的内容。

通过阅读本书,你将能够:

解析复杂的HTML页面

遍历多个网页和网站

了解API的基本概念和工作原理

学习存储数据的方法

下载、读取并抽取网络文档中的数据

使用工具和方法清洗格式异常的数据

读取并处理自然语言

越过表单和登录窗口采集数据

学习采集JavaScript的方法

学习图像处理和文字识别方法

Python网络数据采集 内容简介

本书采用简洁强大的Python语言,介绍了网络数据采集,并为采集新式网络中的各种数据类型提供了全面的指导。第1部分重点介绍网络数据采集的基本原理:如何用Python从网络服务器请求信息,如何对服务器的响应进行基本处理,以及如何以自动化手段与网站进行交互。第二部分介绍如何用网络爬虫测试网站,自动化处理,以及如何通过更多的方式接入网络。

Python网络数据采集 目录

译者序 ix

前言 xi

第一部分 创建爬虫

第1章 初见网络爬虫 2

1.1 网络连接 2

1.2 BeautifulSoup简介 4

1.2.1 安装BeautifulSoup 5

1.2.2 运行BeautifulSoup 7

1.2.3 可靠的网络连接 8

第2章 复杂HTML解析 11

2.1 不是一直都要用锤子 11

2.2 再端一碗BeautifulSoup 12

2.2.1 BeautifulSoup的find()和findAll() 13

2.2.2 其他BeautifulSoup对象 15

2.2.3 导航树 16

2.3 正则表达式 19

2.4 正则表达式和BeautifulSoup 23

2.5 获取属性 24

2.6 Lambda表达式 24

2.7 超越BeautifulSoup 25

第3 章 开始采集 26

3.1 遍历单个域名 26

3.2 采集整个网站 30

3.3 通过互联网采集 34

3.4 用Scrapy 采集 38

第4 章 使用API 42

4.1 API 概述 43

4.2 API 通用规则 43

4.2.1 方法 44

4.2.2 验证 44

4.3 服务器响应 45

4.4 Echo Nest 46

4.5 Twitter API 48

4.5.1 开始 48

4.5.2 几个示例 50

4.6 Google API 52

4.6.1 开始 52

4.6.2 几个示例 53

4.7 解析JSON 数据 55

4.8 回到主题 56

4.9 再说一点API 60

第5 章 存储数据 61

5.1 媒体文件 61

5.2 把数据存储到CSV 64

5.3 MySQL 65

5.3.1 安装MySQL 66

5.3.2 基本命令 68

5.3.3 与Python 整合 71

5.3.4 数据库技术与最佳实践 74

5.3.5 MySQL 里的“六度空间游戏” 75

5.4 Email 77

第6 章 读取文档 80

6.1 文档编码 80

6.2 纯文本 81

6.3 CSV 85

6.4 PDF 87

6.5 微软Word 和.docx 88

第二部分 高级数据采集

第7 章 数据清洗 94

7.1 编写代码清洗数据 94

7.2 数据存储后再清洗 98

第8 章 自然语言处理 103

8.1 概括数据 104

8.2 马尔可夫模型 106

8.3 自然语言工具包 112

8.3.1 安装与设置 112

8.3.2 用NLTK 做统计分析 113

8.3.3 用NLTK 做词性分析 115

8.4 其他资源 119

第9 章 穿越网页表单与登录窗口进行采集 120

9.1 Python Requests 库 120

9.2 提交一个基本表单 121

9.3 单选按钮、复选框和其他输入 123

9.4 提交文件和图像 124

9.5 处理登录和cookie 125

9.6 其他表单问题 127

第10 章 采集JavaScript 128

10.1 JavaScript 简介 128

10.2 Ajax 和动态HTML 131

10.3 处理重定向 137

第11 章 图像识别与文字处理 139

11.1 OCR 库概述 140

11.1.1 Pillow 140

11.1.2 Tesseract 140

11.1.3 NumPy 141

11.2 处理格式规范的文字 142

11.3 读取验证码与训练Tesseract 146

11.4 获取验证码提交答案 151

第12 章 避开采集陷阱 154

12.1 道德规范 154

12.2 让网络机器人看起来像人类用户 155

12.2.1 修改请求头 155

12.2.2 处理cookie 157

12.2.3 时间就是一切 159

12.3 常见表单安全措施 159

12.3.1 隐含输入字段值 159

12.3.2 避免蜜罐 160

12.4 问题检查表 162

第13 章 用爬虫测试网站 164

13.1 测试简介 164

13.2 Python 单元测试 165

13.3 Selenium 单元测试 168

13.4 Python 单元测试与Selenium 单元测试的选择 172

第14 章 远程采集 174

14.1 为什么要用远程服务器 174

14.1.1 避免IP 地址被封杀 174

14.1.2 移植性与扩展性 175

14.2 Tor 代理服务器 176

14.3 远程主机 177

14.3.1 从网站主机运行 178

14.3.2 从云主机运行 178

14.4 其他资源 179

14.5 勇往直前 180

附录A Python 简介 181

附录B 互联网简介 184

附录C 网络数据采集的法律与道德约束 188

作者简介 200

封面介绍 200

Python网络数据采集 前言

每时每刻,搜索引擎和网站都在采集大量信息,非原创即采集。采集信息用的程序一般被称为网络爬虫(Web crawler)、网络铲(Web scraper,可类比考古用的洛阳铲)、网络蜘蛛(Web spider),其行为一般是先“爬”到对应的网页上,再把需要的信息“铲”下来。O'Reilly 这本书的封面图案是一只穿山甲,图灵公司把这本书的中文版定名为“Python 网络数据采集”。当我们看完这本书的时候,觉得网络数据采集程序也像是一只辛勤采蜜的小蜜蜂,它飞到花(目标网页)上,采集花粉(需要的信息),经过处理(数据清洗、存储)变成蜂蜜(可用的数据)。网络数据采集可以为生活加点儿蜜,亦如本书作者所说,“网络数据采集是为普通大众所喜闻乐见的计算机巫术”。

网络数据采集大有所为。在大数据深入人心的时代,网络数据采集作为网络、数据库与机器学习等领域的交汇点,已经成为满足个性化网络数据需求的最佳实践。搜索引擎可以满足人们对数据的共性需求,即“我来了,我看见”,而网络数据采集技术可以进一步精炼数据,把网络中杂乱无章的数据聚合成合理规范的形式,方便分析与挖掘,真正实现“我征服”。工作中,你可能经常为找数据而烦恼,或者眼睁睁看着眼前的几百页数据却只能长恨咫尺天涯,又或者数据杂乱无章的网站中满是带有陷阱的表单和坑爹的验证码,甚至需要的数据都在网页版的 PDF 和网络图片中。而作为一名网站管理员,你也需要了解常用的网络数据采集手段,以及常用的网络表单安全措施,以提高网站访问的安全性,所谓道高一尺,魔高一丈……一念清净,烈焰成池,一念觉醒,方登彼岸,本书试图成为解决这些问题的一念,让你茅塞顿开,船登彼岸。

网络数据采集并不是一门语言的独门秘籍,Python、Java、PHP、C#、Go 等语言都可以讲出精彩的故事。有人说编程语言就是宗教,不同语言的设计哲学不同,行为方式各异,“非我族类,其心必异”,但本着美好生活、快乐修行的初衷,我们对所有语言都时刻保持敬畏之心,尊重信仰自由,努力做好自己的功课。对爱好 Python 的人来说,人生苦短,Python 当歌!简洁轻松的语法,开箱即用的模块,强大快乐的社区,总可以快速构建出简单高效的解决方案。使用 Python 的日子总是充满快乐的,本书关于 Python 网络数据采集的故事也不例外。网络数据采集涉及多个领域,内容包罗万象,因此本书覆盖的主题较多,涉及的知识面相对广阔,书中介绍的 Python 模块有 urllib、BeautifulSoup、lxml、Scrapy、PdfMiner、Requests、Selenium、NLTK、Pillow、unittest、PySocks 等,还有一些知名网站的 API、MySQL 数据库、OpenRefine 数据分析工具、PhanthomJS 无头浏览器以及 Tor 代理服务器等内容。每行到一处,皆是风景独好,而且作者也为每一个主题提供了深入研究的参考资料。不过,本书关于多进程(multiprocessing)、并发(concurrency)、集群(cluster)等高性能采集主题着墨不多,更加关注性能的读者,可以参考其他关于 Python 高性能和多核编程的书籍。总之,本书通俗易懂,简单易行,有编程基础的同学都可以阅读。不会 Python ?抽一节课时间学一下吧。

网络数据采集也应该有所不为。国内外关于网络数据保护的法律法规都在不断地制定与完善中,本书作者在书中介绍了美国与网络数据采集相关的法律与典型案例,呼吁网络爬虫严格控制网络数据采集的速度,降低被采集网站服务器的负担。恶意消耗别人网站的服务器资源,甚至拖垮别人网站是一件不道德的事情。众所周知,这已经不仅仅是一句“吸烟有害健康”之类的空洞口号,它可能导致更严重的法律后果,且行且珍惜!

图书网:Python网络数据采集pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

程序设计

重构 改善既有代码的设计(中文版)pdf

《重构:改善既有代码的设计》(中文版)所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口...
程序设计

数据结构 C语言版 第2版pdf

适读人群 :普通高校电子信息大类本科生学习、考研,同时也适合零售和培训。 采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:1   其中:访客  1   博主  0
    • wong
      wong 0

      公正法制爱国