爬虫基础知识

URL和URI

URI的全称是Uniform Resource Identifier,即统一资源标识符

URL的全称是Uniform Resource Locator,即统一资源定位符

超文本

超文本,英文名叫做hypertext,我们在浏览器中看到网页就是超文本解析而成的,网页源代码是一系列的HTML源码,浏览器解析里面的标签,形成了我们平常看到的网页,而网页的源代码HTML就是超文本

HTTP和HTTPS

URL的开头会有HTTP或者HTPPS,这就是访问资源需要的协议类型,有时还会有ftp,sftp等开头的URL,都是协议类型

HTTP的全称是Hyper Text Transfer Protocol,中文名叫做超文本传输协议,HTTP协议用于从网络传输超文本数据到本地浏览器的传送协议,目前广泛使用的是HTTP1.1版本

HTTPS的全称是Hyper Text Transfer Protocol over Secure Socket Layer,是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL安全层,简称为HTTPS
HTTPS的安全基础是SSL,因此通过它传输的内容都是经过SSL加密的

请求

请求,由客户端向服务端发出,分为:
  1. 请求方法:常见的请求的方法有两种:GET和POST
    GET请求中的参数包含在URL中,数据可以在URL中看到,而POST请求的URL不会包含这些数据,数据都是通过表单形式传输的,包含在请求体中
    GET请求的数据最多只有1024字节,而POST则没有限制爬虫基础知识_第1张图片

  2. 请求的网址
    请求的网址,即统一资源定位符URL,它可以唯一确定我们想请求的资源

  3. 请求头
    请求头,用来说明服务器要使用的附加信息,比较重要的有Cookie,Referer,User-Agent等
    爬虫基础知识_第2张图片

  4. 请求体
    请求体一般承载的内容是POST请求的表单数据,而对于GET请求,请求体则为空。
    爬虫基础知识_第3张图片
    在爬虫中,如果要构造POST请求,需要使用正确的Content-Type,并了解各种请求库的各个参数设置时使用的那种Content-Type,不然可能导致POST提交后无法正常响应

响应

响应由服务端返回给客户端,可以分为:

  1. 响应状态码表示服务器的响应状态,如200代表服务器正常响应,404代表页面未找到,500代表服务器内部发生错误
  2. 响应头包含了服务器对请求的响应,如Content-Type,Server,Set-Cookie等
    ·Date:代表响应产生的时间。
    ·Last-Modified:指定资源的最后修改时间
    ·Content-Encoding:指定响应的内容编码
    ·Server:包含服务器的信息,比如版本号,名称等
    ·Content-Type:指定返回的数据是什么类型,如text/html代表返回的是HTML文档,application/x-javascript代表返回JAVASCRIPT文件,image/jpeg则代表返回图片
    ·Set-Cookie:设置Cookies,响应头中的Set-Cookie告诉浏览器需要将此内容放在Cookies中,下次请求携带Cookies请求
    ·Expires:指定响应的过期时间,可以使代理服务器或浏览器将加载的内容更新到缓存中,如果再次访问时,就可以直接从缓存中加载,降低服务器负载,缩短加载时间
  3. 响应体。响应的正文数据都在响应体中,,比如在请求网页时,它的响应体就是网页的HTML代码,请求图片时,他的响应体就是图片的二进制数据,做爬虫请求网页时,要做的就是解析响应体

会话和Cookies

  1. 静态网页和动态网页:
    ·网页的内容是HTML代码编写的,文字,图片等内容都是通过写好的HTML代码来指定,这种页面就叫做静态网页。它加载速度快,编写简单,但是它的可维护性差,不能根据URL灵活多变的显示内容。
    ·因此,动态网页应运而生,它可以动态的解析URL中参数的变化,关联数据库并动态的呈现不同的页面内容,我们现在遇到的多数网站都是动态网站,他们可能是由PHP,Python编写的,此外,动态网站还可以实现用户的登陆和注册功能,
  2. 无状态HTTP
    HTTP协议对事务处理是没有记忆能力的,也就是说服务器不知道客户端是什么状态。当我们向服务器发送请求后,服务器解析请求,返回响应,服务器负责完成这个过程,而且这个过程是完全独立的,服务器不会记录前后状态的变化。
    这时用于保持HTTP链接状态的技术出现了,他们分别是会话和Cookies,会话在服务器端,用来保存用户的会话信息;Cookies在客户端,有了Cookies,浏览器在下次访问网页时会自动附带上它发送给服务器,服务器识别Cookies,然后返回对他的响应,
    我们可以理解为Cookies里面保存了登陆的凭证,有了他,只需要在下次请求时携带上Cookies就不必重新输入登录信息了。
    因此在爬虫中,在处理需要登陆才能访问的页面时,我们一般将登陆成功偶的Cookies放在请求头里面直接请求,不必模拟登陆
  3. 会话,其本来含义是指一系列有始有终的动作/消息。比如打电话,从拿起电话拨号到挂断电话这中间一系列的过程称为一个会话
    而在WEB中,会话对象用来存储特定用户会话所需的属性及配置信息,当用户在应用程序的WEB页跳转时,存储在会话中的变量将不会丢失,而是在正在会话中一直存在下去,
  4. Cookies指某些某些网站为了辨别用户身份,进行会话追踪而存储在用户本地的数据,那么,我们怎样利用 Cookies 保持状态呢?当客户端第 次请求服务器时,服务器会返回 个请求头中带有 Set-Cookie 字段的响应给客户端,用来标记是哪一个用户,客户端浏览器会把 Cookies 保存起来 当浏览器下一次再请求该网站时,浏览器会把 Cookies 放到请求头 起提交给服务器, “ Cookies 携带了会话 ID 信息,服务器检查该 Cookies 即可找到对应的会话是什么,然后再判断会话来以此来辨认用户状态
    ·所以,Cookies和会话需要配合,一个处于客户端,一个处于服务端,两者共同协作,就实现了登陆会话控制
  5. 会话Cookie和持久Cookie。从表面意思来说,会话 Cookie 就是把 Cookie 放在浏览器内存里,浏览器在关闭之后该 Cookie即失效,持久 Cookie 会保存到客户端的硬盘中,下次还可以继续使用,用于长久保持用户登录状态。
    其实严格来说,没有会话 Cookie 和持久 Cookie 分,只是由 Cookie Max Age Expires 字段决定了过期的时间。
    因此, 一些持久化登录的网站其实就是把 Cookie 的有效时间和会话有效期设置得比较长,下次再访页面时仍然携带之前的 Cookie ,就可以直接保持登录状态

代理

代理实际上指的就是代理服务器,英文叫作 proxy server ,它的功能是代理网络用户去取得网络信息形象地说,它是网络信息的中转站,在我们正常请求一个网站时, 是发送了请求给 Web服务器,Web 服务器把响应传回给我们,如果设置了代理服务器实际上就是在本机和服务器之间搭建了一个桥, 此时本机不是直接给Web 服务器发起请求,而是向代理服务器发出请求,请求会发送给代理服务,然后代理服务器再发送给服务器。接着由代理服务器吧WEB服务器的响应转发给本机,这个过程WEB服务器识别出的IP地址是代理服务器的IP,这样就实现了IP伪装

你可能感兴趣的:(Spider)