转载请注明出处啊喂!
http://blog.csdn.net/jansii/article/details/38585731
明确数据挖掘任务的具体需求之后,怎么进行数据分析呢?
数据抓取--无数据何以谈分析;
数据加工--大刀阔斧挖掘数据;
数据可视化--信息挖出来了,你总得让人民看得懂啊。
数据抓取
在互联网络的时代,信息如同大海般没有边际。甚至我们获取信息的方法已经发生改变:从传统的翻书查字典,继而变成现在,没有搜索引擎根本寸步难行。我们从信息匮乏的时代一下子走到了信息极大丰富今天。然而困扰我们的问题也日益明显,数据太多,信息稀疏被隐藏。因此,一个能够自动在互联网上抓取数据,并自动分拣、分析的工具有非常重要的意义。
我们通过传统的搜索引擎所获得的信息,通常是通过网页的形式所展现的,这样的信息人工阅读起来自然亲切,但计算机却很难进行加工和再利用。而且检索到的信息量太大,我们很难在大量的检索结果中抽取出我们最需要的信息。
RCurl在一定程度上可以实现上述的功能。它还有一位盟友,XML,同一位作者开发,不过此程序包在Windows上的中文支持已被反复吐槽。
数据加工
不符合要求的数据主要是有残缺的数据、错误的数据、重复的数据三大类;
解决方法:
统一数据格式:加权、调整度量之类的方法,不然值在0.1附近的变量在另一个值在10000的变量面前实在是无力回天。
删除重复值、处理缺失字段、检查数据逻辑错误等
数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。
涉及知识:数据可视化与信息图形、信息可视化以及统计学知识。
那RCurl是怎么运作的呢?
简单来说,我们利用这个包,做出必要设置来达到模拟浏览器的目的,接着处理来自HTTP服务器的响应流,再通过字符串处理、正则匹配等方法来提取数据。
那么我们要先知道客户端与服务器之间有怎样的交互过程,下面介绍一些基础知识。
#URL是什么
简而言之就是你想要访问的页面地址,其中包含了什么信息呢?
示例:http://login.sina.com.cn/signup/signin.php?entry=sso
其中1.http,是协议,一般省略;
2.login.sina.com.cn,是服务器;
3.80,是服务器上的网络端口号,一般省略;
4.signup/signin.php,是路径;
5.? entry=sso,是提交的参数(RCurl中某参数利用到这个部分,卖个关子先)。
#HTTP交互过程
图解:
请求信息包括:请求头,请求体,对应的响应信息包括响应头,响应体。
不妨用Firefox的live http helper查看都有什么信息。
个中参数都代表什么含义呢?以下简要介绍。
--------客户端-------
#GET:与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE.一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。
• GET请求获取Request-URI所标识的资源
• POST在Request-URI所标识的资源后附加新的数据
• HEAD请求获取由Request-URI所标识的资源的响应消息报头
• PUT请求服务器存储一个资源,并用Request-URI作为其标识
• HEAD方法与GET方法几乎是一样的,对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源内容,就可以得到Request-URI所标识的资源的信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。
#HTTP 1.1:HTTP版本
HTTP1.1与HTTP1.0的主要区别在于,支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。另外,HTTP/1.1中新增了24个状态响应码,增加对错误或警告信息的描述。
#Host(发送请求时,该报头域是必需的)
作用: 请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的
#User-Agent
作用:告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本.
#Accept
作用: 浏览器端可以接受的媒体类型,
例如: Accept: text/html 代表浏览器可以接受服务器回发的类型为 text/html 也就是我们常说的html文档,如果服务器无法返回text/html类型的数据,服务器返回一个406错误(non acceptable)
例如 Accept: */* 代表浏览器可以处理所有类型
#Accept-Language
作用: 浏览器申明自己接收的语言
----------服务器---------
#200OK
作用:最常见响应状态码, 这表明该请求被成功地完成,所请求的资源发送回客户端
#Connection
例如: Connection: keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭。如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接
例如: Connection: close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭。当客户端再次发送Request,需要重新建立TCP连接
#Content-Type
作用:WEB服务器告诉浏览器自己响应的对象的类型和字符集
#Last-Modified
作用: 用于指示资源的最后修改日期和时间
#X-Powered-By:
作用:表示网站是用什么技术开发的,比如说PHP,asp.net
休息一下~先更到这里~