爬虫基础 之(一) --- 初识爬虫

爬虫概念

(spider,网络蜘蛛)通过互联网上一个个的网络节点,进行数据的提取、整合以及存储

分类:

通用爬虫(了解)

主要用于搜索引擎(百度、Google ,搜狗等)

搜索引擎的工作原理:

核心部分:通过爬虫按照互联网的拓扑结构,进行批量的数据抓取,然后进行数据清洗与整合,然后按照一定的次序存入百度的数据库集群

检索部分:实质上就是一个web系统,给用户提供一个检索平台

搜索引擎获取数据的方式:

1)通过通用爬虫

2)主动的提交自己的网站

3)通过竞价排名(信息排名:1、流量 2、竞价)

4)搜索引擎和DNS的运营商合把一些有价值的网站收录过来

robots协议:

robots协议不是技术层面的协议,只是一个君子协定;首先在爬取一个网站的时候,第一步就是访问这个网站的robots.txt文件,在这个文件中规定了那些东西能爬哪些东西不能爬,爬虫要严格遵守,只爬取允许的内容,不要去爬取不允许的内容,搜索引擎爬虫一定遵守robots协议;我们写的话可以不遵守。

聚焦爬虫

根据客户的需求,定制一些针对性比较强的爬虫

扫描二维码关注公众号,回复: 6141296 查看本文章

工作原理:

1、数据提取(抓取)

  技术:http协议等应用层协议

  反爬:用户代理、IP禁止、验证码、会话处理等

2、数据的分析

  遇到的数据:html、json、xml、js数据

  反爬:js动态加载、js加密、后台加密等

3、数据的存储

  CSV数据、json数据、关系型数据库、非关系型数据库

  爬虫主要研究如何对付反爬

什么是HTTP协议

1)是一个基于请求与响应的应用层协议,底层协议是TCP保证了整个传输过程的可靠性

2)通过url来进行客户端与服务器的交互

  (url解释:统一资源定位符,用于定位互联网上资源的位置,格式,协议://主机名.域名:端口号/路径名...?参数1=值1&参数2=值2&....#锚点)

3)是一种C/S(B/S是一种特殊的C/S结构)模式的协议,客户端发起请求,服务端处理请求并响应

4)它是一种无状态的协议,它通过cookie或者session来处理会话信息

http的过程

1)创建TCP链接:三次握手,

  客户端首先向服务器发出一个是否同意创建连接的请求,

  然后服务根据自己的任务量决定是否创建,并且把是否创建连接的相关信号返回给客户端,

  然后客户端如果接到了同意创建连接的信号,就正式的发起一个创建连接的信号,并且带上http协议的报文。

      通过三次握手客户端和服务器之间建立齐了一条数据通路,就可以保证HTTP协议的可靠传输

2)客户端向服务器发起HTTP请求:通过url把参数以及请求头信息传递给服务器,常见的请求方式有4中,常用的是get和post

  请求头:包含了本次请求的相关配置信息(比如:主机、cookie、数据格式等),决定了客户端和服务之间数据交流的方式与格式

  请求体:就是参数,也即是客户端要想服务器提交的数据

3)服务器处理请求,并且把数据响应出去

4)判断数据是否传输结束,如果结束,四次挥手断开TCP链接

get请求和post请求的区别

get请求参数拼接在url后面的,post请求参数不体现在url中(一般直接通过表单提交);

get请求数据量有限制(不同的浏览器对url的长度都有不同的限制),post请求是没有限制的

状态码 

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

猜你喜欢

转载自www.cnblogs.com/TMMM/p/10821578.html
今日推荐