爬虫知识点小结
网络爬虫
一、定义
按照一定的规则,自动抓取万维网数据的程序或脚本。
二、爬虫可以解决的问题
1.解决冷启动问题 2.搜索引擎的根基 —- 通用爬虫是搜索引擎的重要组成部分 3.帮助机器学习建立知识图谱 4.制作各种比价软件
搜索引擎
一、定义
通过特定的算法,从互联网获取网页信息,为用户提供检索服务的一种程序。
二、组成部分
搜索引擎主要是由通用爬虫组成
通用爬虫是指将互联网上的网页信息整体爬取下来的的程序
三、工作步骤
1.抓取网页 2.数据存储 3.预处理 ···提取文字 ···中文分词 ···消除噪音(比如版权声明文字。导航条等) 4.设置网站排名(根据访问量),为用户提供检索服务
问题:为什么搜索引擎可以爬取所有的网页?—搜索引擎的通用是如何来爬取所有网页的。
一个网页就是一个url,这个问题其实在问,【url的获取来源】。 url的获取来源: 1、新网站会主动提交网址给搜索引擎。 2、网页中的一些外链,这些url全部都会加入到通用爬虫的爬取队列。 3、搜索引擎和dns解析服务商合作,如果有新网站注册,搜索引擎就可拿到网址。
四、通用爬虫的缺陷:
(1)通用爬虫是爬取整个网页,但是网页中90%的内容基本是没用。 (2)不能满足不同行业,不同人员的不同需求。 (3)只能获取文字,不能获取音频,视频,文档等信息。 (4)只能通过关键字查询,无法通过语义查询。
五、聚焦爬虫
在实施网页抓取的过程中,【会对内容进行筛选】,尽量保证只抓取与【需求相关】的信息的爬虫程序。
六、robots协议
定义:网络爬虫排除标准(Robots Exclusion Protocol) 作用:告诉搜索引擎那些可以爬那些不能爬。
HTTP 和 HTTPS
http协议定义(超文本传输协议):
是一种规范———>约束发布和接受html的规范。 端口:80
http的特点
(1)应用层协议。 (2)无连接:http每次发送请求和响应的过程都是独立。 在http 1.0以后,有请求头:connection:keep-alive:客户端和服务建立长连接。
(3)无状态:http协议不记录状态。 cookie和session做到请求状态的记录。 cookie是在客户端保存,session是在服务器保存。
https:安全版的http协议。
在http下加入了 SSL(Secure Sockets Layer 安全套接层),在传输层对网络连接进行加密,保证数据传输的安全 对称加密 —-秘钥 非对称—私钥+公钥 数字签证— 端口:443 Upgrade-Insecure-Requests: 1:可以将http升级成https请求。
url:统一资源定位符
(1)主要作用:用来定位互联网上的任意资源的位置。 (2)为什么url可以定位任意资源? 组成:https://www.baidu.com/index.html?username=123&password=abc#top scheme:协议—https netloc:网络地址:ip:port—www.baidu.com 通过ip定位电脑,通过port定位应用。 192.168.92.10: 代理ip:ip:port path:资源路径。—index.html query:请求参数:—?后面的内容username=123&password=abc fragment:锚点—-top 原因:url包含netloc可以定位电脑,path定位资源,这样就可以找到任意在互联网上的信息。 (3)特殊符号: ?:后面就是请求参数 &:连接请求参数 #:锚点—-如果url中有锚点,在爬虫程序中尽量去除。
http的工作过程:
(1)地址解析: 将url的所有组成部分分别解析出来。 (2)封装http请求数据包。 将第一步解析出来的信息进行装包。—http数据包。 (3)封装tcp数据包,通过三次握手建立tcp。 (4)客户端发送请求 (5)服务发送响应 (6)关闭tcp连接。
当我们在浏览器输入一个url,浏览器加载出这个页面,中间做了哪些事?
(1)客户端解析url,封装数据包,建立连接,发送请求。 (2)服务器返回url对应资源文件给客户端,比如:index.html。 (3)客户端检查index.html是否有静态资源(引用外部文件),比如js,css,图片。有的话再分别发送请求,来获取这些静态资源。 (4)客户端获取所有静态,通过html语法,完全将index.html页面显示出来。
http的请求方法:
get请求:get(获取)–>获取服务器的指定资源—>涉及到筛选一些信息—>请求参数:主要拼接在url中。 —>不安全(别人可以通过url获取信息)—>请求参数的大小受限。 post请求:post(邮递)—>向服务器传递数据—>请求数据是方法在请求实体中的—>安全—>大小不受限。
客户端请求
(1)组成:请求行、请求头、空行、请求数据(实体)
请求头:请求方法;host地址,http协议版本。 (2)请求头: user-agent:客户端标识。 accept:允许传入的文件类型。 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3 Referer:标识产生请求的网页来自于哪个网页。 防盗链 cookie:cookie信息。—现在很多网站,必须封装cookie才给数据。 post请求重要的请求头: content-type:post请求的数据类型 content-length:post请求数据的长度。
ajax请求必须封装的头: x-requested-with:xmlhttprequest
服务器响应:
(1)组成:状态行、响应头、空行、响应正文。 (2)响应头: Content-Type:text/html;charset=UTF-8
(3)状态码(面试常考): 1XX:表示服务器成功接收部分请求,还需要发剩余请求才能处理整个过程。(处理了一半) 2XX:标识服务器成功接收请求并处理完整个过程。(成功) 200成功 3XX:为了完成请求,客户端需要进一步细化请求。 302:重定向 304:使用缓存资源 4XX:客户端请求错误。(url写错了) 404:服务器无法找到请求内容。 403:服务器拒绝访问,权限不够。 5XX:服务器错误。 502:服务器错误 500:请求未完成,服务器遇到不可知问题。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试