爬虫知识点总结

553次阅读
没有评论
爬虫知识点总结

爬虫知识点小结

网络爬虫

一、定义

按照一定的规则,自动抓取万维网数据的程序或脚本。

二、爬虫可以解决的问题

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免费测试

相关文章:

版权声明:Python教程2022-10-24发表,共计2625字。
新手QQ群:570568346,欢迎进群讨论 Python51学习