您好!欢迎来到静学网! 注册 登入
  • 致力中国及国外独立搜索引擎技术及第三方网站搜索引擎SEO排名研究

你所不知的百度搜索引擎系统之搜索器(蜘蛛爬虫程序)核心技术原理!

课程目录 搜索引擎技术开发 次浏览
总感觉在这里大谈搜索引擎系统有些太过于狂妄和天真,毕竟搜索引擎涉及的东西有点多,就百度而言,也是在老外的基础上作出来的,这可想而知是有多难,特别是国内刚起步的时候,作为掌握国内搜索引擎核心技术的大佬—李彦宏,带着自己的专利做起了百度,这其中的难度可想而知,为了更加深入的了解搜索引擎是个什么东西,我们把搜索引擎系统给解剖开来讲。
 
说实在,在这里也不一定说的清楚,不过还是尝试者去讲清楚,之所以先讲搜索器,是因为这是搜索引擎自动化的开始,手工收集的时代我们就不在这里说了,要达到亿级别的网页收集,这不是人工所能办到的,因此解决这个问题只能开发爬虫程序,我们称为蜘蛛程序,当然也叫搜索器。
 
可能很多人疑问这种搜索器,也就是蜘蛛爬虫程序的结构到底是怎么样的呢?为何如此的神奇?
 
首先先让大家明白,我们整个互联网的虚拟的东西都是通过程序来完成的,也就是你在手机及电脑上所看到的都是一连串的代码来组合而成,加上信息及传播媒介等,让我们得以看到别人共享的东西,而搜索引擎蜘蛛也是如此,是由一连串且有特定功能的程序组合而成,这些功能都是为了达到一定目的而做的。

 
那么,要抓取网页,就需要有一个规则,把这个规则用设计出来,并且做成一个可行性的模型,也可以成为一种数学模型,因为代码的实现仅仅是结果,而整个逻辑设计还在于模型设计,对于搜索引擎爬虫(蜘蛛),如何实现从自动走动到如何把整个网页拿到手是一个大工程,比如你怎么知道新的网站上线,你通过什么样的方式去发现这个网站的存在,仅仅这一步就让人棘手。
 
我们知道,我们访问一个页面是通过链接进行访问,严格来讲是IP,当然已经经过解析,所以链接成为了重要突破口,那么怎么才能获取到链接并且能够分析出该页面中所有的存在的链接呢?这又是一个难题,并且顺着链接进行再次爬取,通常我们简单的爬取网站只能单个站点,因此,这就需要技术上的突破了。

搜索引擎爬虫
 
现在我们来把搜索引擎爬虫的整个设计框架来总结一下。
 
我们设计一个目标网址,首先就得抓取到这个网址,对这个域名网址进行域名解析,进而匹配域名和ip,这里说明一下,实际上搜索引擎蜘蛛和我们人一样,都是一步一步来实现对内容的获取;建立TCP链接,这是整个互联网传输层通信协议,有了它我们就可以接受和发送有效、可靠的信息,而这个过程需要经过三次握手才能成功连接上, 连接之后发送http get请求,服务器响应返回请求头信息。
 
例如:
 
 
请求头:
 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: max-age=0
Connection: keep-alive
Cookie: PSTM=1544794695; BIDUPSID=1A3AB250C85028C8402F943798863F7B; __yjs_duid=1_f42b4931eb028c5c2eb76ff64a1bbad91619313683978; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BDUSS=BzeDYyUnhrZ0hKOVF6N1hodWsyYn5yNHJKbjVZWWF1QlJ2bzRkVjdhTHV1MXRoSVFBQUFBJCQAAAAAAAAAAAEAAABvI5JLv9fX0zE5MQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO4uNGHuLjRhRz; BDUSS_BFESS=BzeDYyUnhrZ0hKOVF6N1hodWsyYn5yNHJKbjVZWWF1QlJ2bzRkVjdhTHV1MXRoSVFBQUFBJCQAAAAAAAAAAAEAAABvI5JLv9fX0zE5MQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO4uNGHuLjRhRz; lastIdentity=PassUserIdentity; BAIDUID=49BFCE9A7BE94F9149A93D89EF47DA2C:FG=1; BDSFRCVID_BFESS=tlkOJeC62Aekya5He8nKhMUJeDOZIkJTH6aoc8CkB5YwTFhiJzMyEG0PMf8g0Ku-cHGkogKK3gOTH4PF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF_BFESS=tRk8oKLaJDvDqTrP-trf5DCShUFsbhtJB2Q-XPoO3KJ-VJ5Fy-_Wh4kJXJoZK4QiW2KfWfbgylRp8P3y0bb2DUA1y4vpK5QObgTxoUJ2abnmDqRmqtnWK4kebPRiJ-b9Qg-JbpQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0bDICj5uBejP3qlj0bI62aKDsLnRoBhcqEIL4LtoO2to0yM_O2fn3BGTZ0lbvyqTOOxbSj4Qo-TkdMPKtXRbn3Db0atczMl5nhMJEb67JDMP0qfb70-ny523iob3vQpPMVhQ3DRoWXPIqbN7P-p5Z5mAqKl0MLPbtbb0xXj_0-nDSHHKJJ6DJ3j; H_WISE_SIDS=110085_127969_131862_175324_176399_178384_178645_179345_179433_179623_180276_181106_181133_181486_181588_182238_182531_183030_183330_184010_184197_184267_184319_184440_184655_184794_184838_184891_184894_185517_185634_185879_186039_186319_186411_186595_186636_186669_187022_187070_187182_187186_187201_187215_187292_187432_187495_187530_187628_187634_187669_187726_187877_187928_187962_188181_188294_188352_188413_188427_188467_188520_188614_188669_188733_188746_188798_188832_188841_188997_189055_189087_189257_189326_189415_189432_189470_189679_189715_189755_189766_8000085_8000106_8000125_8000138_8000143_8000163_8000166_8000170_8000178_8000186_8000190; MCITY=-198%3A; BAIDUID_BFESS=49BFCE9A7BE94F9149A93D89EF47DA2C:FG=1; delPer=0; PSINO=6; PHPSESSID=pij91g4saqh571d3p0prr9utt1; Hm_lvt_6f6d5bc386878a651cb8c9e1b4a3379a=1634521506,1634523403,1634538833,1634544177; __cas__st__=NLI; __cas__id__=0; Hm_lpvt_6f6d5bc386878a651cb8c9e1b4a3379a=1634544900; SITEMAPZHITONG={"data":"13ad40112097c22b739270467a9b11ffa2750f8307577766ef6496083b9e670a3ae28e12afe1bdb80fbfa2393713219ea2e928a0f78c514478142e52e57df2910db3c91798f72b5b055113201262d41d6467b77ba9d17cef577d822a5c305c0c275e5ac7e651cc6e4d3fb9ba020c0d9b117981a861a752b632e960211d05bc3dddce892e18daa2329003833643ed23cbe69b7f6812660a1ce2354e512ccf72a8a5467f85319fc4d91917030ea04ff086e9bd995b11435ed00bfefb8e59df6c57a8024f26c67c329cb968ab31595ab33429929ad30cddcc3b83a779a464500bbfc41ac17d8700d49ba260ef6c693674f3858b65a8db607ada757b01c3f649426aec9c9c0014ef62446b55d4ffa0b8f1a2ab7621fba5fff8782c01523bdcc5254f328f15bd7bc13225bdfe5648269e1c962a96af5465924512a0cb01630ceb07bb4613bc13bbe2c89f747c7b08fdf4a32f9f974f5867b73ac18c228a866cc5d1d1","key_id":"32","sign":"8d5cbea7"}; BDRCVFR[feWj1Vr5u3D]=mk3SLVN4HKm; H_PS_PSSID=34834_34443_34530_34068_31253_34861_34741_34600_34584_34504_34709_26350_34470_34699_34679; BA_HECTOR=202g2ka00525ala5p11gmqsmh0r
Host: ziyuan.baidu.com
Referer: https://ziyuan.baidu.com/college
sec-ch-ua: "Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92"
sec-ch-ua-mobile: ?0
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36
 
 
响应头:
 
Cache-Control: no-store, no-cache, must-revalidate
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
Date: Mon, 18 Oct 2021 13:13:27 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Server: nginx/1.8.0
Set-Cookie: PHPSESSID=ofpmei807ge98e7fspq5lkm1n0; path=/
Set-Cookie: lastIdentity=PassUserIdentity; expires=Tue, 19-Oct-2021 13:13:27 GMT; Max-Age=86400; path=/
Strict-Transport-Security: max-age=2592000
Tracecode: 08071860632672665098101821
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Protected-By: OpenRASP
X-Request-Id: 801ade1e799eea5500da49201b67c685
 
Request URL: https://ziyuan.baidu.com/college
Request Method: GET
Status Code: 200 OK
Remote Address: 14.215.179.22:443
Referrer Policy: strict-origin-when-cross-origin
 
 
把链接提取出来,放入到自己的程序任务序列中等待处理,当然对于某些网址是否抓取,还根据特定算法进行判断,如果不符合规则,将不会抓取,比如网页的状态码不正常等,当然爬虫蜘蛛会尝试来几次抓取,如果多次不正常,就认定你这个网页有异常,不会再来抓取等等。
 
抓取到的链接,依次进入处理队列,读取对应网页数据,并下载网页,存入临时数据库当中,下一步就交给其它程序工序来处理。如此循环往复,这就是抓取的一个过程。
 
以上就是关于“搜索器(搜索引擎爬虫)”一个基本工作框架。



静学网 , 版权所有丨如未注明 , 均为原创丨转载请注明你所不知的百度搜索引擎系统之搜索器(蜘蛛爬虫程序)核心技术原理!
顶一下
(0)
踩一下
(0)
友情链接:
网站优化
本网站所刊载信息,不代表静学网观点。 刊用本网站稿件,务经书面授权或注明来源。 未经授权禁止转载、摘编、复制及建立镜像,违者将依法追究法律责任。 投稿邮箱:1870447831@qq.com | 举报邮箱:1870447831@qq.com