爬虫的定义以及可解决的问题 基础(初学爬虫)

本文深入探讨了爬虫的基本概念,包括定义、功能及其在解决冷启动问题、搜索引擎构建、知识图谱创建和比价软件开发中的应用。详细解析了搜索引擎的工作流程,如网页抓取、数据存储、预处理及检索服务,同时对比了通用爬虫与聚焦爬虫的差异,以及robots协议的作用。此外,还介绍了HTTP协议的关键特性,如请求方法、客户端请求与服务器响应的组成,以及状态码的意义。

第一讲 爬虫和数据

1,爬虫的定义:程序或者脚本–》自动的爬取万维网数据的程序或者脚本

2,爬虫可以解决的问题:
(1)解决冷启动问题。 思考?冷启动是什么?
(2)搜索引擎的根基。 --通用爬虫。 思考?通用爬虫和聚焦爬虫的区别是什么?
(3)帮助机器学习建立知识图谱。思考 ?知识图谱是什么?
(4)制作各种比价软件。 思考?爬取各种比价数据整理成软件?

3,搜索引擎
1、什么是搜索引擎
搜索引擎通过特定算法,从互联网上获取网页信息
将其保存到本地,为用户提供检索服务的一种程序
2、搜索引擎的组成:搜索引擎主要是由通用爬虫组成的。
(1)通用爬虫:将互联网上的网页信息【整体】爬取下来的
爬虫程序。
(2)搜索引擎的工作步骤

        1:**抓取网页**
        2:**数据存储**
       3:**预处理**
            				1、*提取文字*
            				2、*中文分词*
            				3、*消除噪声*
        4:提供**检索服务**,*网站排名*(访问量)
    (3)为什么搜索引擎可以爬取所有的网页?--搜索引擎
             的通用是如何爬取所有网页的?
             一个网页就是一个url,这个问题其实在问:
               **url**的**获取来源**:
               1、**新**网站会**主动提交**网址给**搜索引擎**。
               2、网页中的一些**外链**,这些**url**全部**都**会加入到**通用爬虫**
               的**爬取队列**。
               3、搜索引擎和dna解析服务商合作,如果有新网站注册,搜索引擎就
                    可拿到网址。
 3、通用爬虫的**缺陷**:
   (1)通用爬虫是**爬取整个网页**,但是网页中内容大部分无用
   (2)**不能**满足**不同行业**,不同人员的**不同需求**。
   (3)**只**能获取**文字**,不能获取音频,视频,文档等信息。
   (4)只能**通过关键字**查询,无法通过语义查询
 4、**聚焦爬虫**与**通用搜索引擎爬虫**的区别在于:
      **聚焦爬虫**在实施**网页抓取**时会**对内容**进行**处理筛选**,
      尽量保证**只**抓取**与需求相关**的网页信息。

五、robots协议:
定义:网络爬虫爬取标准
作用:告诉搜索引擎哪些可以爬哪些不能爬。 未完待续

六、http协议
1、什么是http协议:
是一种规范—》约束发布和接受html的规范
2、https:安全版http协议–ssl—
对称加密–密钥
非对称----私钥+公钥
数字签证— 公钥可理解成数字签证
3、端口号
http:80
https:443
Upgrade-insecure-Requests:1:可以将http升级成https请求。
4、http特点
(1)应用层协议
(2)无连接:http每次发送请求和响应的过程都是独立
在http 1.0以后,有请求头:
connection:keep-alive:客户端和服务建立连接
(3)无状态:http协议不记录状态。
cookie和session做到请求状态记录
cookie在客户端保存,
session在服务器保存
5、url:统一资源定位符
(1)主要作用:用来定位互联网上的任意资源位置
(2)为什么url可以定位任意资源?
组成:https://www.baidu.com/index.html?username=123&password=abc#top
scheme:协议—https
netloc:网络地址:ip:port
通过ip定位电脑:通过port定位应用
192.168.92.10
其中92表示
一个域最多255台电脑
10表示个人电脑
代理ip,ip:port 服务器
path:访问资源路径。–index.html
query: 请求参数:–?后面的内容username=123&password=abc
fragment: 锚点top
原因url包含netloc可以定位电脑,path定位资源
这样就可以找到任意在互联网上的信息。
(3)特殊符号
?:后面就是请求参数
&:连接请求参数
#:锚点----如果url中有锚点,在爬虫查询中尽量去除
6、http的工作过程:
(1)地址解析
将url的所有组成部分分别解析出来。
(2)封装http请求数据包。
将第一步解析出来的信息进行装包。—http数据包。
(3)封装tcp数据包,通过三次握手建立tcp
(4)客户端发送请求
(5)服务发送响应
(6)关闭tcp连接。
7、当我们在浏览器输入一个url,(必考题)
浏览器加载出这个页面,中间做了哪些事?
(1)客户端解析url,封装数据包,建立连接,在发送请求。
(2)服务器返回url对应资源文件给客户端,比如:index.html。
(3)客户端检查idnex.html是否有静态资源(引用外部文件),
比如js,css,图片。有的话在分别发送请求,来获取这些静态资源
(4)客户端获取所有静态,通过html语法,完全将index.html页面出来

    5、应用层
    4、运输层
    3、网络层
    2、数据链路层
    1、物理层

8、http请求方法
(1)get请求:get(获取)–>获取服务器的指定资源–>涉及到筛选
一些信息:主要拼接在url中。–>不安全(别人可以通过url
获取信息)–>请求参数的大小受限
简述:指定的页面信息,并返回实体主体
(2)head 类似于get请求,只不过返回的响应没有具体的内容,
用来获取头
(3)post请求:post(邮递)–>向服务器传递数据–>请求数据是
方法在请求实体中的–>安全–>大小不受限
(4)put 从客户端向服务器传送的数据取代指定的文档的内容。
(5)delete 请求服务器删除指定的页面
(6)connect http/1.1协议中预留给能够将连接改为管道方式
的代理服务器
(7)opions 允许客户端查看服务器的性能。
(8)trace 回显服务器收到的请求,主要用于测试或诊断。
9、客户端请求
(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;q=0.9
Referer:标识产生请求的网页来自于哪个网页。
防盗链
cookie:cookie信息。–现在很多网站,必须封装cookie才给数据。
content-type:post请求的数据类型
content-length:post请求数据的长度。

        ajax请求必须封装的头:
         x-requested-with:xmlhttprequest
        Accept-Charset:指出浏览器可以接受的字符编码。
        了解一下:
           ISO8859-1: 通常叫做Latin-1
           属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列。比如,字母a的编码为0x61=97。 
           GB2312/GBK 
           这就是汉字的国标码,专门用来表示汉字,是双字节编码,而英文字母和iso8859-1一致(兼容iso8859-1编码)。其中                             gbk编码能够用来同时表示繁体字和简体字,而gb2312只能表示简体字,gbk是兼容gb2312编码的。
           UTF 
           utf编码兼容iso8859-1编码,同时也可以用来表示所有语言的字符,不定长编码,自带简单的校验功能。每一个字符的长度从1-6个字节不等,一般来讲,英文字母都是用一个字节表示,而汉字使用三个字节。

10、服务器响应:
(1)组成:状态行、 响应头、空行、响应正文
(2)响应头:
Content-Type: Text/html;charset-UTF-8
(3)状态码(面试常考):
1xx:表示服务器成功接收部分请求,还需要发剩余
请求才能处理整个过程。
2xx:标识服务器成功接收请求并处理完整个过程。
(成功) 200成功
3xx:为了完成请求,客户端需要进一步细化请求。
302:重定向
304:使用缓存资源
4xx:客户端请求错误:(url写错了)
404:服务器无法找到请求内容。
403:服务器拒绝访问,权限不够。
5xx:服务器错误。
502:服务器错误。
500:请求未完成,服务器遇到不可知问题

requests模块的安装
pip install requests

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值