爬虫前奏

URL:

URL是Uniform Resource Locator的简称,统一资源定位符。

一个URL一般由一下几部分组成:

scheme://host:post/?quer-string=XXX#anchor
  • scheme:代表的是访问协议,一般为:HTTP、HTTPS以及ftp等。
  • host:主机名,域名,比如:www.baidu.com。
  • post:端口号,当访问网站时,浏览器默认使用80端口。
  • path:查找路径,比如:https://www.jianshu.com/trending/now,后面的 /trending/now 就是path。
  • quer-string:查找字符串,比如:https://baike.baidu.com/s?wd= Python,后面的 wd= Python 就是查询字符串。
  • anchor:锚点,前端用来做页面定位的。

在浏览器中请求一个URL,浏览器会对这个URL进行一个编码。除英文字母、数字以及部分符号外,其他的全部使用百分号+十六进制码值进行编码。

 

HTTP常用的请求方法:

在HTTP协议中,定义了八种请求方法(https://www.runoob.com/http/http-methods.html)。常用的为get和post请求:

1. get 请求:一般情况下,只从服务器获取数据,并不会对服务器资源产生任何影响的时候会使用get请求。

2. post 请求:向服务器发送数据(登录)、上传文件等,会对服务器资源产生影响的时候使用post请求。

 

请求头常见参数:

在HTTP协议中,向服务器发送一个请求,数据分为三类:第一是把数据放在 URL 中,第二是把数据放在 body 中(post请求),第三是把数据放在 head 中。网络爬虫中常用到的请求头参数:

1. User-Agent : 浏览器名称。在网络爬虫中经常用到。请求一个网页时,服务器通过这个参数可以知道请求是由哪个浏览器发送的。因此,我们经常设置一些浏览器的值来伪装爬虫。

2 . Referer : 表明当前的请求是从哪个URL发送过来的,一般可用来做反爬虫技术,如果不是从指定页面过来的,那么不做相关响应。

3. Cookie : http协议是无状态的,同一个人发送两次请求,服务器没能力知道两次请求来自同一个人。因此,Cookie 来做标识。一般想要登录才能访问的网站,就需要发送 Cookie 信息。

常见状态响应码:

200   (成功)  服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。

301(永久重定向)  请求的网页已永久重定向到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者重定向到新位置。

302(临时移动重定向)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。比如:访问需要登录的页面,            此时没有登录,就会重定向到登录页面。

400   (错误请求)服务器不理解请求的语法。比如:URL错误。

403   (禁止)服务器拒绝请求,权限不够。

500   (服务器内部错误)  服务器遇到错误,无法完成请求。

更加详细参考:https://blog.csdn.net/ddhsea/article/details/79405996

原文地址:https://www.cnblogs.com/-hao-/p/13789124.html