爬虫基础学习笔记(二)

OSI

物理层:电器链接;

数据链路层:交换机,STP,帧中继;

网络层:路由器,IP协议

传输层:TCP、UDP协议

会话层:建立通信连接,网络拨号

表示层:每次链接只处理一个请求

应用层:HTTP、FTP

 

一、HTTP

和ssl协议同为当前互联传输到安全的主流协议

应用层的协议

无连接:每次链接只处理一个请求

无状态:每次链接、传输都是独立的

 

二、Request Header

Accept: text/plain //纯文本
//JSON

Accept-Charset: utf-8
Accept-Encoding: gzip, deflate //是否进行压缩,指定压缩的方式
//URLlib2
Accept-Language: en-US
Connection: keep-alive //传输的过程TCP不断开直到数据传输结束(http1.1默认打开)
Content-Length: 348 //字节数
If-Modified-Since //指定在某一时间之前没有数据变化返回304状态从缓存读取数据
Content-Type: application/x-www-form- urlencoded
Date: Tue, 15 Nov 1994 08:12:31 GMT
Host: en.wikipedia.org:80 //虚拟主机指定具体指向哪个域名
User-Agent: Mozilla/5.0 (X11; Linux x86_64; //告诉服务端我是什么类型的浏览器
rv:12.0) Gecko/20100101 Firefox/21.0
Cookie: $Version=1; Skin=new;

三、Response Header

Accept-Patch: text/example;charset=utf-8
Cache-Control: max-age=3600 //缓存相对静态的数据
Content-Encoding: gzip
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT //最后修改的时间
Content-Language: da
Content-Length: 348
ETag: "737060cd8c284d8af7ad3082f209582d“
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Location: http://www.w3.org/pub/WWW/People.html //网页位置移开返回302状态码定位到需要跳转的地址
Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1 //cookie存储服务端的身份ID

Status: 200 OK

四、Request Method

五、Status Code

2XX 成功

3XX 跳转

4XX 客户端错误

500 服务器错误

 

300

  • 300 Multiple Choices 存在多个可用的资源,可处理或丢弃
  • 301 Moved Permanetly 重定向
  • 302 Found 重定向
  • 304 Not Modified 请求的资源未更新,丢弃

 

400/500

  • 400 Bad Request 客户端请求有语法错误,不能被服务器所理解
  • 401 Unauthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
  • 403 Forbidden 服务器收到请求,但是拒绝提供服务
  • 404 Not Found 请求资源不存在,eg:输入了错误的URL
  • 500 Internal Server Error 服务器发生不可预期的错误
  • 503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常

 

六、HTTPS

诞生的背景:传统http中的传输的数据都是明文容易被截获和篡改,存在安全漏洞

client→Router→Internet→Server

HTTP发起→SSL→Socket→Socket→SSL→Server接受

公钥私钥(证书对)的非对称加密:只有共钥加密的数据只有私钥才能解开

常见的加密算法 RSA  SHA

 

七、抓取方案

robots.txt一般存在网站的根目录,里面嵌有改网站的sitemap

宽度优先vs深度优先:

  • 重要的网页距离种子站点比较近;
  • 王维网的深度并没有很深,一个网页有很多路径可以到达;
  • 宽度优先有利于多爬虫并行合作抓取;
  • 深度限制与宽度优先相结合

 

定制抓取:

  • 按板块;
  • 按内容;
  • 网站特定结构;
  • 利用搜索

 

 

2.3多线程并行及排重

2.4用MySQL 信息存储

 

 

3.进阶

3.1网站服务结构

3.2Cookie及 登录处理

3.3控制抓取的节奏

3.4日志

3.5守护进程

4.实战

4.1网页结构分析

4.2网页抓取方案

4.3数据提取

4.4存储方案

刷牙君

View posts by 刷牙君
关注前沿设计资讯致力于设计系统研究,爱码转爱分享的处女座设计师一枚

Leave a Reply

Your email address will not be published. Required fields are marked *