铁东博客

PHP之认识爬虫(一)

认识爬虫


一、什么是爬虫

  • 网络爬虫(又称为网页蜘蛛,网络机器人,或者网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本
  • 大家可以理解为在网络上爬行的一只蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛,如果它遇到资源,那么它就会抓取下来。

二、爬虫抓取过程

  • 在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://image.baidu.com ,我们会看到几张的图片以及百度搜索框,这个过程其实就是用户输入网址之后,经过 DNS 服务器,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,发送给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户便可以看到形形色色的图片了。
  • 因此,用户看到的网页实质是由 HTML 代码构成的,爬虫爬来的便是这些内容,通过分析和过滤这些 HTML 代码,实现对图片、文字等资源的获取。

三、URL 相关知识

  • 爬虫爬取数据时必须要有一个目标的 URL 才可以获取数据,它是爬虫获取数据的基本依据。

https://www.php.cn/course/1086.html

  • 完整的 URL 包括以下几部分:
    • scheme 协议部分:该 URL 的协议部分为https:,这代表网页使用的是 HTTPS 协议。
    • host 域名部分:该 URL 的域名部分为www.php.cn 也可以使用 IP 地址
    • port 端口部分:跟在域名后面的是端口。默认为 80 端口,端口可以更改,如果是默认端口,不在URL上显示
    • path 路径:服务器上资源的路径,course/1086.html
    • parameters 参数:用于指定特殊参数的可选项

1、什么是 HTTP

  • 超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信
  • HTTP 的工作方式是客户机与服务器之间的请求-应答协议

2、什么是 HTTPS

  • HTTPS 是身披 SSL 外壳的 HTTP
  • HTTPS 是一种通过计算机网络进行安全通信的传输协议,经由 HTTP 进行通信,利用 SSL/TLS 建立全信道,加密数据包
  • HTTPS 使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性

备:TLS 是传输层加密协议,前身是 SSL 协议,由网景公司 1995 年发布,有时候两者不区分

3、请求方式

编号 类型 说明
1 GET 请求指定的页面信息,并返回实体主体。
2 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
3 HEAD 类似于 get 请求,只不过返回的响应中没有具体的内容,用于获取报头。
4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。
5 DELETE 请求服务器删除指定的页面。
6 TRACE 回显服务器收到的请求,主要用于测试或诊断。
7 CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
8 OPTIONS 允许客户端查看服务器的性能。

4、GET 请求

  • GET 请求可被缓存
  • GET 请求保留在浏览器历史记录中
  • GET 请求可被收藏为书签
  • GET 请求不应在处理敏感数据时使用
  • GET 请求有长度限制
  • GET 请求只应当用于取回数据

5、POST 请求

  • POST 请求不会被缓存
  • POST 请求不会保留在浏览器历史记录中
  • POST 不能被收藏为书签
  • POST 请求对数据长度没有要求

6、状态码

编号 状态码 说明
1 100 继续 客户端应当继续发送请求。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。
2 101 转换协议 在发送完这个响应最后的空行后,服务器将会切换到在 Upgrade 消息头中定义的那些协议。只有在切换新的协议更有好处的时候才应该采取类似措施。
3 102 继续处理 由 WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。
4 200 请求成功 处理方式:获得响应的内容,进行处理
5 201 请求完成,结果是创建了新资源。新创建资源的 URI 可在响应的实体中得到 处理方式:爬虫中不会遇到
6 202 请求被接受,但处理尚未完成 处理方式:阻塞等待
7 204 服务器端已经实现了请求,但是没有返回新的信 息。如果客户是用户代理,则无须为此更新自身的文档视图。 处理方式:丢弃
8 300 该状态码不被 HTTP/1.0 的应用程序直接使用, 只是作为 3XX 类型回应的默认解释。存在多个可用的被请求资源。 处理方式:若程序中能够处理,则进行进一步处理,如果程序中不能处理,则丢弃
9 301 请求到的资源都会分配一个永久的 URL,这样就可以在将来通过该 URL 来访问此资源 处理方式:重定向到分配的 URL
10 302 请求到的资源在一个不同的 URL 处临时保存 处理方式:重定向到临时的 URL
11 304 请求的资源未更新 处理方式:丢弃
12 400 非法请求 处理方式:丢弃
13 401 未授权 处理方式:丢弃
14 403 禁止 处理方式:丢弃
15 404 没有找到 处理方式:丢弃
16 500 服务器内部错误 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。
17 501 服务器无法识别 服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。
18 502 错误网关 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
19 503 服务出错 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。

未经允许不得转载:铁东博客 » PHP之认识爬虫(一)

评论,共有 0 条评论

  • 昵称 (必填)
  • 邮箱 (必填)
暂无评论数据,赶紧来评论吧