常见的称谓是网页抓屏(screen scraping)、数据挖掘(data mining)、网络收割(Web harvesting)或其他类似的版本。器人(bots)。
理论上,网络数据采集是一种通过多种手段收集网络数据的方式,不光是通过与 API 交互 (或者直接与浏览器交互)的方式。最常用的方法是写一个自动化程序向网络服务器请求
数据(通常是用 HTML 表单或其他网页文件),然后对数据进行解析,提取需要的信息。
实践中,网络数据采集涉及非常广泛的编程技术和手段,比如数据分析、信息安全等。本 书将在第一部分介绍关于网络数据采集和网络爬行(crawling)的基础知识,一些高级主 题放在第二部分介绍。
网络数据采集的基本原理
Python从网络服务器请求信息
如何对服务器的响应进行基本处理
如何以自动化手段与网站进行交互
• 通过网站域名获取 HTML 数据
• 根据目标信息解析数据 • 存储目标信息 • 如果有必要,移动到另一个网页重复这个过程
先向网络服务器发出GET请求,以获取具体的页面。再从页面中读取HTML的内容,在进一步的进行数据的筛选。
一次client对Server请求的流程:
1 client发出1/0的比特值,表示电路的高低电压,比特值会形成一种信息,带有请求头和请求体,头里有client的本地router的mac ip 和Server的ip。体里有client对Server应用的请求。
2 client的本地router收到所有1和0的比特值,把他们理解成一个数据包(packet),从client的mac ip发从到Server的ip。client端的router会把数据包打上router的ip,以router的ip作为发件地址,发出。
3 client的数据包在经过一些跳转服务器,到Server端
4 Server端的ip在收到client发来的数据包。
5 Server端在读取数据包的请求头里的目标端口,然后把他传递到对应的应用,网络服务器上。
6 网络服务器应用从服务器处理器收到数据,数据一般是一个GET请求,和请求文件index.html
7 网络服务器应用找到对应的html文件,把它打包成一个新的数据包再发送给client,然后通过它的本地router发出去,用同样的过程回传到client上。
解析复杂html:
这部分内容重点介绍网络数据采集的基本原理:如何用 Python 从网络服务器请求信息,如 何对服务器的响应进行基本处理,以及如何以自动化手段与网站进行交互。最终,你将轻 松游弋于网络空间,创建出具有域名切换、信息收集以及信息存储功能的爬虫