爬虫的文本笔记---基础知识

本文介绍了爬虫的基本概念、工作流程及分类,详细解释了通用爬虫与聚焦爬虫的区别,并探讨了搜索引擎的工作原理,包括抓取网页、数据存储、预处理及提供检索服务等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://www.bilibili.com/video/BV12E411A7ZQ?p=15

1,什么是爬虫:爬虫是一种按照一定规则,自动抓取互联网信息的程序或者脚本。
2,爬虫可以做什么:可以爬取图片、视频等等,只要是通过浏览器可以访问的数据都可以爬取。
3,爬虫的本质是什么:模拟浏览器打开网页,获取网页中我们想要的那部分数据。

#基本流程
1,准备工作
通过浏览器查看分析目标网页,学习 编程基础规范。
2,获取数据(核心)
通过HTTP库向目标站发起请求,请求可以包含额外的header等信息,如果服务器能正常响应,会得到一个response,便是索要获取的页面内容
3,解析内容
得到的内容可能是HTML.json等格式,可以用页面解析库、正则表达式等进行解析。
4,保存数据
保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定形式的文件。

1,爬虫的分类

通用爬虫搜索引擎的一部分,将互联网的网页下载到本地,形成镜像直接影响搜索引擎的效果
聚焦爬虫面向特定的主题需求,在网页抓取的时候对内容进行了筛选,只抓取相关的信息。。更多的是面向聚焦爬虫

通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。

聚焦爬虫,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于: 聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。

1.1,搜索引擎工作原理

1.1.1,抓取网页:搜索引擎网络爬虫
1,首先选取一部分的种子url,将这些url放入到待抓取的url队列中

2,取出待抓取的url地址,解析等到主机的ip,将url对应的网页下载下来,存储进已经下载的网页库中,并且将这些已经完成的url地址抓取的URL放入到已经抓取的url队列中

3,分析已经抓取的URL队列中的 url,分析其中的其他url,将这些没有提取的url继续放入到待抓取的url队列中,从而进入下一循环


#通用网络的爬虫步骤
开始
 |
初始URL
 |
获取对应的数据或者网页
 |
提取到新的URL地址,放入到URL队列中
 |
满足终止的条件(如果不满足终止条件,将继续重复以上过程(获取网页开始))
 |
结束
1.1.2,数据存储
搜索引擎通过爬虫爬取的网页,将数据存储进原始页面数据库,其中的页面数据与用户浏览器得到的html页面是完全一致的。

一般情况下,搜索引擎蜘蛛在进行网页抓取的时候,也会做重复内容检测,如果遇到大量抄袭或者复制的内容,就不再爬取。
1.1.3,预处理
搜索引擎将爬虫爬取的内容会进行各种预处理

提取文字

中文分词

消除噪音索引处理(比如版权文字、导航条、广告等。。。)

索引处理

链接关系计算

特殊文件处理

.............

但是搜索引擎还不能处理图片、视频、flash非文字内容,也不能执行脚本和程序
1.1.4,提供检索服务,网站排名
搜索引擎在对信息进行组织和处理之后,会为用户提供关键字检索服务,将用户检索的信息展示,同事,会根据pagerank(连接访问量)进行网站排名。

img

2,关于通信过程

1,浏览器会通过dns服务器查找域名对应的IP地址

2,向IP地址对应的web服务器发送请求

3,web服务器会根据请求响应,发送你需要的数据回浏览器

4,浏览器接受服务器送过来的数据或者网页,会进行渲染,展示在页面中。

  • 谁在进行渲染数据:浏览器
  • 一个域名必须有一个地址
  • 地址可以没有域名

3,关于路径

URL:统一资源定位符
    http://mocie.douban.com/typerank?kw=%E7%BE%8E%E9%A3%9F
    
    
协议(HTTP http ftp)://
    服务器的域名或者ip地址【端口
http:超文本传输协议,是一种发布和接受html页面的方法
https:相当于http的安全版本,在http加入ssl层,443
SSL(安全套阶层),在传输层对网络进行加密,保障数据传输的安全性

4,请求方法

HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)

根据HTTP标准

HTTP:0.9时代只支持get

HTTP:1.0时代支持post和head

HTTP:1.1在1.0的基础上更新了,get,post,head,options,put,delete,trace,connect

HTTP:2.0没有普及

get请求指定页面信息,并且返回数据
post向指定的资源请求提交数据并获取页面信息
head类似get,返回的是响应中没有具体的内容,用于获取报头
options允许客户端查看服务器性能
put从客户端向服务端传递的数据取代指定的文档内容
delete请求服务器删除指定的页面
trace主要用于测试或者诊断
connect代理服务器
1.5,get和post的区别

get和post是HTTP请求的两种基本方法。

HTTP是基于TCP/IP的关于数据如何在万维网中实现通信协议

1,get 把参数包含在URL中;post通过request body传递参数

2,GET请求只能进行url编码,而POST支持多种编码方式。

3,GET请求在URL中传送的参数是有长度限制的,而POST么有。

4,对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

5,GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

6,GET 请求指定页面信息,并且返回数据,POST** 向指定的资源请求提交数据并获取页面信息

6,常见的请求头

connection:kwwp-alive
    1,clinet发起一个包含connection:keep-alive的请求(http.1.1默认值)
    2,在server接受请求之后,
    server支持keep-alive,回复一个包含connection:keep-alive的响应,不关闭连接
    server不支持keep.alive,回复一个包含connection:close,g关闭连接
    3,如果clint收到包含connection:keep-alive的响应,则同一个连接下发送下一个请求,直到一方主动连接关闭
Accept:
    指的是浏览器或者其它的客户端可以接收的MIME(多用途互联网邮件扩展)文件类型,服务器可以根据它判断并返回适当的文件格式
    text/html 希望接收的是html文本
    application/xhtml+xml XHTML和xml文档
Accept-Ecoding:
Accept-Language:
Cookie:浏览器端cookie
HOSE:客户端地址

    

7,常见的响应头

content-type:内容的类型

8,状态码(面试会问)

100-199 表示服务器成功的接收部分请求,要求客户端继续提交其余的的请求才能完成整个处理过程
200-299 表示的是服务器成功接收请求并且完成整个处理过程
300-399 为了完成请求,客户需要进一步细化请求,304使用缓存资源
400-499 客户端的请求有问题,404 Not found,403 服务器决绝 没有权限
500-599 服务器出现错误 500
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值