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