爬虫基础理论储备

1.定义:爬虫就是自动抓取互联网信息的脚本或者程序
2.爬虫可以解决的问题:
a.解决冷启动的问题
b.搜索引擎的根基
c.建立知识图谱(查询集,数据集)帮助建立机器学习的知识图谱
3.爬虫的分类
a.通用爬虫:将互联网上的数据整体爬取下来保存到本地的一个爬虫程序是
搜索引擎
的重要组成部分
1)搜索引擎:就是特定的算法和策略,从互联网上获取页面信息,并将信息资源保存到本地为用户提供检索服务的系统
*2)搜索引擎的工作步骤:
第一步:抓取网页
第二步:数据存储
第三步:预处理
提取文字
中文分词
消除噪音(比如版权声明文字、导航条、广告等……)
第四步:提供检索服务,网站排名

常见面试题:
如果获取页面的Url,使得搜索引擎涉及到所有的网页。—>搜索引擎的url获取途径都哪些?
a、新网站会主动提交。
b、在其他网站设置的外链也会加入到待爬取的url队列里面。
c、和dns服务商合作,如果有新网站成立,搜索引擎就会获取网址。
b.聚焦爬虫:在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息
4.爬虫的准备工作。
(1)robots协议
定义:网络爬虫排除标准
作用:网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
将来写爬虫程序我们要规避robots协议即可。
(2)网站地图sitemap
sitemap 就是网站地图, 它通过可视化的形式, 展示网站的主要结构。
网上有很多sitemap生成网站:https://help.bj.cn/
(3)估算网站的大小
可以使用搜索引擎来做,比如在百度中使用site:www.zhihu.com
5.http协议
1)、http协议:HyperText Transfer Protocol,超文本传输协议
作用:是一种收发html的【规范】。
2)、http端口号:80
https端口号:443
HTTPS (Hypertext Transfer Protocol over Secure Socket Layer)简单讲是http的安全版,在http下加入SSL层。
SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。
数字签证。(也要去在复习复习)。
3)、***http协议的特点:
(1)应用层协议。(最顶层也是和用户交互的层。)
(2)无连接:http协议每次发送请求都是独立的(每次连接只处理一个请求)。http 1.1以后有一个请求头:connection:keep_alive.
(3)无状态:http协议不记录状态,进而产生了两种记录http状态的技术:cookie和session。
6.url:统一资源定位符。
(1)url的作用:用来定位互联网上的【任意】资源的【位置】。
(2)url的组成:
https://www.baidu.com/s?wd=python&rsv_spt=1
https://www.baidu.com/index.html
协议:https/http
netloc(网络地址):ip:port
ip主要用来定位电脑(网卡)。
port主要用来定位应用。mysql(3306),mongo(27017)----相当于一个门户。
path:资源在服务器的相对路径。—路由(router)
(3)url中的特殊符号。
?:get请求的参数在?后面
&:get请求的多个参数用&连接
#:锚点,定位到页面中任意位置。
7.http工作过程:
(1)地址解析
(2)封装HTTP请求数据包
(3)封装成TCP包,建立TCP连接(TCP的三次握手)
(4)客户机发送请求命令
(5)服务器响应
(6)服务器关闭TCP连接
8.客户端请求:
(1)组成:请求行、请求头部、空行、请求数据(实体)四个部分组成
请求行:协议,url,请求方法
请求头:主要的作用就是来限定这个请求的详细信息。(非常重要,必须要知道一些重要的请求头的含义。)
请求数据:post请求的数据是放到这里面的。
(2)重要请求头(针对于爬虫而言)
user-agent:客户端标识
cookie:请求的状态信息,很重要
Referer:表示产生请求的网页来源于哪里。
防盗链。
accept:允许传入的文件类型。
x-requested-with:ajax请求必须要封装的头
--------------------------
content-type:post请求的数据类型
content-length:post请求数据的长度

	(3)请求方法:get/post/put(推送)/delete(删除)/trace(诊断)/options(性能)/connect(连接,预留字段)。
		get方法:get获取--从服务器获取资源--条件(请求参数)---请求参数是拼接到url里面的?后面--不安全(容易被别人获取:用户名和密码)---大小受限。
		post方法:post传递--向服务器传递数据--请求数据是放在实体里面。----安全---大小不受限

9.服务器响应:
(1)组成:
状态行:状态码
消息报头
空行
响应正文
(2)响应头
Content-Type: text/html;charset=utf-8:响应的类型
(3)状态码(状态码)
100~199:表示服务器成功接收部分请求,
要求客户端继续提交其余请求才能完成整个处理过程。
200~299:表示服务器成功接收请求并已完成整个处理过程。
常用200(OK 请求成功)。
300~399:为完成请求,客户需进一步细化请求。
例如:请求的资源已经移动一个新地址、
常用302(所请求的页面已经临时转移至新的url)、
307和304(使用缓存资源)。
400~499:客户端的请求有错误,
常用404(服务器无法找到被请求的页面)、
403(服 务器拒绝访问,权限不够—DDos)。
500~599:服务器端出现错误,
常用500(请求未完成。服务器遇到不可预知的情况)。
面试题:当用户在客户端输入url,客户端怎么加载整个页面的?
(1)客户端解析url,封装数据包,发送请求给服务器
(2)服务器从请求中解析出客户端想要的内容,进行封装返回给客户端
(3)客户端检查数据包中是否有静态资源,如果有继续请求获取静态资源
(4)客户端按照html的语法结合静态资源将页面展示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值