1.前端知识
前端知识结构图来自于拔赤的微博
2.需要的一些工具
2.1浏览器插件
当然,作为非前端工程师并不要求这些技能,做爬虫的时候我们需要分析网页内容,抓取需要的有效信息,使用前端开发调试工具对网页的 CSS、HTML 和 JavaScript 进行实时编辑、调试和监控,比如firefox浏览器的firebug插件(Firebug入门指南).
google的chrome浏览器自带的开发者工具,可以在chrome的工具中找到,快捷方式: Ctrl+Shift+I 或者Ctrl+Shift+J直接打开控制台,或者直接按F12, 如下
同样,microsoft的IE浏览器自带的开发工具,F12操作打开。
2.2web开发调试工具fiddler2
Fiddler(Fiddler 教程)是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据
3.HTTP协议的一些知识(HTTP协议详解)
由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如上图中的Response Headers中的"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。如果你想知道,在你访问浏览器的时候,都做了哪些事情参见从输入网址到显示页面:浏览器工作原理拆解分析
3.1URL地址(统一资源定位符)
在本地机器上,我们可以通过绝对路径来定位我们的各种文件及目录,在internet上,可以讲URL理解为我们定位各种文件的路径,描述服务器上的各种资源。
URL(统一资源定位符)将从因特网获取信息的五个基本元素包括在一个简单的地址中:
传送协议:http,ftp,https
服务器:服务器的域名或者IP地址
端口号:以数字方式表示,若为HTTP的默认值“:80”可省略
路径:以“/”字符区别路径中的每一个目录名称
查询:发给服务器的数据,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题
典型的统一资源定位符看上去是这样的:
http://zh.wikipedia.org:80/w/index.php?title=Special:%E9%9A%8F%E6%9C%BA%E9%A1%B5%E9%9D%A2&printable=yes
其中:
http,是协议;
zh.wikipedia.org,是服务器;
80,是服务器上的网络端口号;
/w/index.php,是路径;
?title=Special:%E9%9A%8F%E6%9C%BA%E9%A1%B5%E9%9D%A2&printable=yes。
3.2HTTP请求方法
HTTP/1.1协议*定义了八种方法(GET,POST,PUT,DELETE,HEAD,TRACE,CONNECT,OPTIONS)来以不同方式操作指定的资源,前面四种是最常用的,HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的:
GET:使用GET方法应该只用在读取数据
POST:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。
PUT:向指定资源位置上传其最新内容。
DELETE:请求服务器删除Request-URI所标识的资源。
OPTIONS:这个方法可使服务器传回该资源所支持的所有HTTP请求方法,可以测试服务器功能是否正常运作。
HEAD:与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部份。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。
TRACE:回显服务器收到的请求,主要用于测试或诊断。
CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接。
3.3HTTP请求返回状态
所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。
状态代码的第一个数字代表当前响应的类型:
1xx消息——请求已被服务器接收,继续处理
2xx成功——请求已成功被服务器接收、理解、并接受
3xx重定向——需要后续操作才能完成这一请求
4xx请求错误——请求含有词法错误或者无法被执行
5xx服务器错误——服务器在处理某个正确请求时发生错误