一、什么是爬虫
- 网络爬虫(又称为网页蜘蛛,网络机器人,或者网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本
- 大家可以理解为在网络上爬行的一只蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛,如果它遇到资源,那么它就会抓取下来。
二、爬虫抓取过程
- 在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 百度图片-发现多彩世界 ,我们会看到几张的图片以及百度搜索框,这个过程其实就是用户输入网址之后,经过 DNS 服务器,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,发送给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户便可以看到形形色色的图片了。
- 因此,用户看到的网页实质是由 HTML 代码构成的,爬虫爬来的便是这些内容,通过分析和过滤这些 HTML 代码,实现对图片、文字等资源的获取。
三、URL
相关知识
- 爬虫爬取数据时必须要有一个目标的
URL
才可以获取数据,它是爬虫获取数据的基本依据。- 完整的 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 | 服务出错 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。 |