网络爬虫与HTTP协议

网络爬虫大多都是基于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

时间: 2024-09-30 10:48:28

网络爬虫与HTTP协议的相关文章

Python3网络爬虫实战-23、使用Urllib:分析Robots协议

利用 Urllib 的 robotparser 模块我们可以实现网站 Robots 协议的分析,本节我们来简单了解一下它的用法. 1. Robots协议 Robots 协议也被称作爬虫协议.机器人协议,它的全名叫做网络爬虫排除标准(Robots Exclusion Protocol),用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不可以抓取.它通常是一个叫做 robots.txt 的文本文件,放在网站的根目录下. 当搜索爬虫访问一个站点时,它首先会检查下这个站点根目录下是否存在 robots.tx

Python网络爬虫

http://blog.csdn.net/pi9nc/article/details/9734437 一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址, 然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止. 如果把整个互联网当成一个网站,那么

Socket网络编程--网络爬虫(1)

我们这个系列准备讲一下--网络爬虫.网络爬虫是搜索引擎系统中十分重要的组成部分,它负责从互联网中搜集网页,采集信息,这些网页信息用于建立索引从而为搜索引擎提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果.网络爬虫的基本工作原理: (1)从一个初始URL集合中挑选一个URL,下载该URL对应的页面: (2)解析该页面,从该页面中抽取出其包含的URL集合,接下来将抽取的URL集合再添加到初始URL集合中: (3)重复前两个过程,直到爬虫达到某种停止

156个Python网络爬虫资源

本列表包含Python网页抓取和数据处理相关的库. 网络相关 通用 urllib - 网络库(标准库) requests - 网络库 grab - 网络库(基于pycurl) pycurl - 网络库 (与libcurl绑定) urllib3 - 具有线程安全连接池.文件psot支持.高可用的Python HTTP库 httplib2 - 网络库 RoboBrowser - 一个无需独立浏览器即可访问网页的简单.pythonic的库 MechanicalSoup - 能完成自动网站交互的Pyth

Python网络爬虫与信息提取(中国大学mooc)

目录 目录 Python网络爬虫与信息提取 淘宝商品比价定向爬虫 目标获取淘宝搜索页面的信息 理解淘宝的搜索接口翻页的处理 技术路线requests-refootnote 代码如下 股票数据定向爬虫 列表内容 爬取网站原则 代码如下 代码优化 Python网络爬虫与信息提取 淘宝商品比价定向爬虫 股票数据定向爬虫 1. 淘宝商品比价定向爬虫 功能描述 目标:获取淘宝搜索页面的信息 理解:淘宝的搜索接口翻页的处理 技术路线:requests-re[^footnote]. 代码如下: #CrowTa

网络爬虫的相关综述

前言:对网络爬虫很感兴趣 —————————————————————————————————————————————— 一.网络爬虫的工作原理 1.1等同于浏览器访问网页的工作原理.(详细情况见本文末尾博文链接) (1)是一种真人的行为驱动 (2)通过浏览器来自动执行人为的动作,将动作自动程序化. 1.2网络爬虫就是将浏览器访问网页的过程,再次抽象成了程序. 二.网络爬虫的分类 2.1通过链接的访问层次先后来分:宽度优先和广度优先 宽度优先:在下载网页链接时,是一层一层的通过链接来爬取: 广度优

[Python]网络爬虫(一):抓取网页的含义和URL基本构成

一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址, 然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止. 如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来. 这样看来,网络爬虫就是一个爬行程序,一个抓取

C++ 实现网络爬虫

吐槽 前天心血来潮, 把自己面试经历下了下来. 我觉得自己求职一路来比较心酸, 也付出了比一般人更多的汗水. 本以为写出来, 好歹可以作为一篇励志故事. 得到的评论却是, 语言只是一门工具. ||| 这句话我已经听了4年了! 我以前也是XX, 现在XXX. ||| 直到你膝盖中了一箭? 我也是用c的...只能说,重要的是一种学习的能力,会用即可. ||| 呵呵. 可能能对于你的同学,你是优秀的,但是可能对于你想工作的方向的公司来说,你会的太少,不值得一些公司去培养,所以还是建议你把基础再好好踏实

老蜗牛写采集:网络爬虫(一)

搞采集,那第一步离不开的肯定是蜘蛛,那我们必须的科普一下,何为网络蜘蛛? 网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫. 详细自己搜百度百科 那话又说回来了,其实说网络爬虫,术语好像好像很高大上,其实不外乎写一个http请求,然后到互联网去抓取感兴趣的数据.方式不外乎两种:一种是带有目的爬,然后抓取自己想要的数据,老牛写的蜘蛛基本