码迷,mamicode.com
首页 > 其他好文 > 详细

分布式爬虫(1)

时间:2018-10-18 10:49:52      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:host   author   text   传输   不能   重要   语法   客户   location   

一、环境搭建

  1.python 2.7

  2.pip ,并设置pip源

    (1)配置pip conf ,自动设置源

    #mkdir ~/.pip

    #vim ~/.pip/pip.conf

    [gloabal]

    index-url=https://pypi.tuna.tsinghua.edu.cn/simple

 

    也可以每次安装的时候制定source

    #pip install -i https://pypi.tuna.tsinghua.edu.cn.simple lxml

二、Http协议

  1.OSI协议      TCP/IP协议

              应用层

  应用层         表示层

              会话层

  传输层            传输层

  互联网络层        网络层

  网络接口层        数据链路层

                物理层

 2.OSI模型

    (1)物理层:电器连接

    (2)数据链路层:交换机、STP、帧中继

    (3)网络层:路由器、ip协议

    (4)传输层:TCP、UDP协议

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

    (6)表示层:每次连接只处理一个请求

    (7)应用层:HTTP、FTP

  3.HTTP协议:

    (1)应用层协议;

    (2)无连接:每次连接只处理一个请求

    (3)无状态:每次连接传输都是独立的 

  4.HTTP HEADER

    (1)REQUEST部分的HTTP HEADER

      Accept:text/plain

      Accept-Charset:utf-8

      Accept-Encoding:gzip,deflate    

      Accept-Language:en-US

      Connection:keep-alive    

      Content-length:348

      Content-Typte:applicaltion/x-www-from-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;

  5.keep-alive

    (1)http是一个请求<->响应模式的典型范例,即客户端向服务器发送一个请求信息,服务器来响应这个信息。在老的HTTP版本中,每个请求都被创建一个新的客户端->服务器的连接,在这个连接上发送请求,然后接受请求。这样的模式有一个很大的优点,他很简单,很容易理解和通过编程来实现;有个很大的缺点就是效率比较低,因此keep-alive被提出来解决效率低的问题。

    (2)keep-alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后续请求的时候,keep-alive功能避免了建立或者重新建立连接

  HTTP/1.1

  默认情况下所在的HTTP1.1中所有的连接都被保持,除非在请求头或者响应头中指明要关闭:Connection:Close

  RESPONSE的HTTP 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
Set-Cookie:UserID=JohnDoe;Max-Age=3600;Version=1
Status:200 OK

   6.http响应状态码

    2XX 成功

    3XX  跳转

    4xx  客户端错误

    500       服务器错误

  7.HTPP响应状态码400/500

    400 Bad Request客户端请求有语法错误,不能被服务器所理解

    401 Unauthorized请求未经授权,这个状态码必须和WWW-Authenticate报头一起使用

    403Forbidden  服务器收到请求,但是拒绝提供服务

      如果是需要登录的网站,尝试重新登录

      IP被封,暂停爬取,并增加爬虫的时间,如果拨号网络,尝试重新联网更新IP

    404 Not Found  请求资源不存在,eg:输入错误的URL

    500 Internal Server Error服务器发生了不可预期的错误

    503Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常

    5XX服务器错误,直接丢弃并计数,如果连续不成功,WARNING并停止爬取

  8.网页抓取的原理

    (1)宽度优先策略

    (2)深度优先策略

  9.选择哪种策略?

    (1)重要的网页离种子站比较近

    (2)万维网的深度并没有很深,一个网页有很多路径可以到达

    (3)宽度优先利于多爬虫并行合作抓取

    (4)深度优先于宽度优先相结合

  10.不重复抓取策略

    

分布式爬虫(1)

标签:host   author   text   传输   不能   重要   语法   客户   location   

原文地址:https://www.cnblogs.com/bigdata-stone/p/9808294.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!