黑马程序员技术交流社区

标题: 零基础学习网络爬虫知识(一) [打印本页]

作者: 播妞    时间: 2017-10-24 17:48
标题: 零基础学习网络爬虫知识(一)

1、网络爬虫的定义


网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。


2、网络爬虫与浏览器相似之处


网络爬虫的抓取过程可以理解为 模拟浏览器操作的过程。


浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示您选择的网络资源。这里所说的资源一般是指 HTML 文档,也可以是 PDF、图片或其他的类型。


资源的位置由用户使用 URI(统一资源标示符)指定。


浏览器解释并显示HTML文件的方式是在HTML和CSS规范中指定的。这些规范由网络标准化组织 W3C(万维网联盟)进行维护。


3、网络爬虫抓什么


一般来讲,抓取的内容主要来源于网页,目前,随着这几年移动互联网的发展,越来越多信息来源于移动互联网App、H5等,所以爬虫就不止局限于一定要抓取解析网页,还有移动互联网app、H5等的网络请求进行抓取


对网络爬虫而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值。


4、了解网络请求


网络爬虫以HTTP、HTTPS请求为主,读取网页内容,提取有用的价值,内容一般分为两部分,非结构化的文本,或结构化的文本。


超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。


4.1 HTTP请求的方法


HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式:


OPTIONS


返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。


HEAD


向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。


GET


向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中。其中一个原因是GET可能会被网络蜘蛛等随意访问。


POST


向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。


PUT


向指定资源位置上传其最新内容。


DELETE


请求服务器删除Request-URI所标识的资源。


TRACE


回显服务器收到的请求,主要用于测试或诊断。


CONNECT


HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。


4.2 HTTP响应的代码


服务器程序响应的第一行叫状态行。状态行以HTTP版本号开始,后面跟着3位数字表示响应代码,最后是易读的响应短语。根据第一位可以把响应分成5类:



图1、HTTP响应代码


4.3实例演示


我们用浏览器去访问https://www.baidu.com, 在浏览器中打开开发人员工具(F12),F12 开发人员工具是可帮助生成和调试网页的一套工具。按下F12按钮调出开发者工具界面,点击第一行“Network”选项卡,可见下方以详细信息的方式列举出了网页中的元素。


找到我们请求的链接https://www.baidu.com,响应消息的状态行是:HTTP/1.1 200 OK,其中HTTP/1.1对应版本号、200对应response-code;如下图2所示



图2、GET / HTTP/1.1请求的响应消息




作者: 苑小苑7016    时间: 2017-11-7 19:46
哈哈.顶一波.目前Android开发,准备学一下python




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2