网络爬虫大多都是基于HTTP协议的,要想成为一个网络爬虫高手,熟悉HTTP协议是必不可少的一项基本技能。
网络爬虫基本分为两种一种是基本内嵌浏览器的,可视化的操作,另一种是后台进程运行的,
第一种的好处是操作简单,学习容易,缺点是效率太低,适合于小数据量的采集
第二种的好处是运行效率高,适合大数据量采集,但是需要一些比较专业的技能才能完成
可以根据不用的需求进行选择
HTTP协议是应用层的网络协议,是建立在可靠的网络传输协议TCP之上的,换句话说,HTTP协议是用TCP协议实现的。如下图所示,依据HTTP协议建立的网络服务访问实际是TCP的连接访问。
Web服务器监听着80端口,用户端连接上服务器后,将要访问的URL,爬虫名称(User-Agent)等信息按key:value按行分割组成一个数据串,结尾以“\\r\\n\\r\\n”,将数据串发送给服务器,服务器便根据URL来定位要访问的文件,并将文件的内容以数据流的形式发送给用户端(文件内容之前有一段数据是响应头部,以"\\r\\n\\r\\n"与实际内容分开,这个头部记录的URL对应内容的状态,编码,长度,更新时间,格式等信息,方便用户端解析。
按照这个基本原理,实现用户端访问(爬虫的下载)HTTP服务器的基本步骤如下:
根据URL中的域名,解析得到服务器的IP地址
根据地址,连接服务器的80端口,这样便和web服务器建立了连接
将URL/User-Agent等按行组成字符串,通过建立的连接发送给服务器
尝试从与服务器建立的连接中读取数据,直到能读取到数据为止,先读取到服务器响应的头部,获取返回数据内容的长度,字符编码等,然后在读取到返回的数据内容
对读取到的数据内容进行编码转换,便得到了要下载的资源(网页、文件等)内容。
关闭与服务器建立的连接,便完成了一次HTTP服务器访问过程。
转载请注明出处 数荟集(专业数据提供) http://www.shuhuiji.com/detail.jsp?id=7