专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

搜索引擎网页爬虫抓取的知识,爬虫要解决几个问题

来源:小易整编  作者:小易 发布时间:2019-08-28 10:39
摘要:搜索引擎网页爬虫抓取的知识,爬虫要解决几个问题,最近在整理一些爬虫的经验,这里列了个粗略的大纲,并列了一些问题,对爬虫有兴趣的朋友可以参考下,对着这些问题,也方便大家梳理...

最近在整理一些爬虫的经验,这里列了个粗略的大纲,并列了一些问题,对爬虫有兴趣的朋友可以参考下,对着这些问题,也方便大家梳理爬虫知识,规划爬虫学习路径等。在后续文中,也许我会找一些相关主题,展开写一些文章。

笔者之前写过一点和搜索相关的文章,一篇是适合大众的搜索技巧分享,不吹牛地说,如果那些爬虫模块和问题,你都深入思考过,也自己实现过,找个年薪百万地机会应该是有的,只要找机会有点耐心。搜索引擎其实挺大的,要做好搜索难度更高。搜索行业不仅仅存在技术壁垒,还存在资金壁垒和数据壁垒等。

爬虫要解决几个问题

我已经很久没怎么做搜索相关的事情了,本身也不是在大的搜索公司工作,所以目前也不靠搜索吃饭。这里写点搜索方面的技术分享,希望对有志从事搜索技术研发的读者朋友有帮助。

搜索引擎的分类方法很多,一般分为网页搜索和垂直搜索。谷歌、百度是搜索搜索,腾讯视频,QQ音乐是垂直搜索。(后续再专文聊聊垂直搜索和网页搜索的差异)

咱们这里不想聊怎么分类,而是想聊聊搜索引擎分为几个模块,各个模块的主要难点在哪里,哪些深入研究是有市场竞争力的,哪些工作是容易在各个公司找机会的。

这里我把搜索引擎主要模块划分为爬虫模块,网页处理,索引模块,检索模块,排序模块。考虑到文章篇幅,这篇文章先讲讲爬虫的部分,后续再一次展开其他部分。

爬虫

爬虫要解决几个问题:覆盖率,更新率,时效性。两个问题是有矛盾的,不更新的网页几秒钟去重新抓一次,不仅浪费带宽,而且在对方网站能够容许的抓取频率下,抓别的就受影响了。

几个工程挑战:怎么存储几百甚至千亿规模的网页?存储怎么去做压缩?怎么对这些数据集进行高校分析?比如分析哪些网页需要重新抓取,分析哪些网站死了,分析标题,分析正文,分析链接农场,计算PageRank等。工程挑战很多,这方面可以去阅读GFS,Bigtable,MapReduce相关的论文。

还有一个工程挑战是,怎么去实时计算一个简化的pagerank?因为pagerank正常是需要离线计算的,一次计算大概需要几天的时间。而判断一个网页是否重要,容不得等上几天的时间,否则搜索引擎的时效性就会比较差。

另外,怎么去挖掘和判断哪些网站是作弊网站,哪些网站的质量很差,哪些网页值得高频抓取,是否有Sitemap,如何利用RSS来抓取,怎么做到爬虫系统比较友好?这些都是爬虫工程师经常要思考的问题。

笔者之前参与开发过的爬虫系统,每天抓取的规模都在1-10亿之间。呆过的两三家公司,都接到大大小小站长的电话反馈或者投诉。这方面就是百度这样成熟的爬虫系统,也难免会被投诉。不过我做网页爬虫那会,基本还是PC搜索时代,百度的流量很值钱,百度的爬虫出了什么问题,一般的站长也不会为难你。但是如果是不太知名的搜索引擎公司,就比较麻烦了,随时封你IP,或者加你的spider Agent到Robots文件的Not Allow列表里。

爬虫还有几个挑战,比如,网页搜索的时效性怎么搞?新一集电视剧出来了,能不能及时收录?能不能搞一个收录平台,让各家都主动接入?论坛有帖子更新了,能及时收录么?突然一条新闻火了,怎么在几秒钟内收录并且索引完毕?微博起来了,微博的内容怎么抓取?公众号火了,那能不能抓取公众号?

海外的网页怎么抓取?IP不够用怎么办?IP无法访问怎么办?代理是什么?怎么买代理?或者怎么自己挖掘代码IP?

另一个挑战是,一个网站之前没抓过,突然谈了个合作,或者突然允许抓取了,一个站点上亿的网页规模,要几天内全部抓取完毕,怎么办?火力全开,人家anti-spider的策略很高级,怎么办?好不容易抓回来了,结果抓取的网页是有问题的,比如文字变成了图片,怎么办?有时候文字response code是200,但是网页却空空如也,怎么办?


本文地址:网络营销频道 https://www.hkm168.com/zhishi/1307.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们处理,谢谢!


网络营销
小编:小易整编
相关文章相关阅读
  • 因特网能提供的最基本服务有哪些

    因特网能提供的最基本服务有哪些

    因特网能提供的最基本服务有:1、www服务;2、电子邮件e-mail服务;3、远程登录telnet服务;4、文件传输ftp服务;5、usenet网络新闻组服务;6、电子公告牌服务。本教程操作环境:windows7系统、DellG3电脑。因...

  • 前端开发需要哪些软件

    前端开发需要哪些软件

    编程一般用的软件有:1、hbuilder;2、sublimetext;3、webstorm;4、phpstudy;5、dreamweaver;6、visualstudio;7、phpstorm;8、notepad等等。孔子说,“工欲善其...

  • 瑞波币瑞波币交易平台瑞波币最新消息-新闻

    瑞波币瑞波币交易平台瑞波币最新消息-新闻

    1、瑞波币_瑞波币交易平台_瑞波币最新消息/新闻php小编鱼仔:瑞波币交易平台盘点及瑞波币最新消息瑞波币(XRP)是一种数字货币,也是一种全球支付网络。它旨在提供快速、安全和低成本的跨境支付服务。瑞波币交易平台有很多,选择一个合适的平台非...

  • css设置网页字体

    css设置网页字体

    css是层叠样式表的缩写,是用于网站样式设计的语言。其中,设置网页字体是css中的一个重要方面。如何使用css设置网页字体,将为我们带来更好的视觉体验,提升页面的可读性和专业感。本文将主要介绍css中的字体相关设置,包括字体样式、字体大小以...

  • 微信一天转账最多可以转多少

    微信一天转账最多可以转多少

    微信一天内最多可以转账20000元。其原因如下:1、这个限制是为了保护用户的资金安全,防止恶意转账和欺诈行为;2、这个限制也是为了遵守中国的金融监管政策,确保资金的合法性和安全性;3、微信转账的限制不仅仅是为了保护用户的资金安全,也是为了防...

  • Javascript如何使网页跳转

    Javascript如何使网页跳转

    方法:1、使用_window.location.href方式;2、使用window.history.back方式;3、使用window.navigate方式;4、使用self.location方式;5、使用top.location方式。本教...

  • 网络协议的三个要素是什么?各有什么含义?

    网络协议的三个要素是什么?各有什么含义?

    网络协议的三个要素及其含义:1、语义,解释控制信息每个部分的意义;2、语法,用户数据与控制信息的结构与格式,以及数据出现的顺序;3、时序,对事件发生顺序的详细说明。简单来说:语义表示要做什么,语法表示要怎么做,时序表示做的顺序。网络协议为计...

  • 比较流行的Java工作流框架:5个最佳选项

    比较流行的Java工作流框架:5个最佳选项

    选择合适的Java工作流框架:比较常用的5个选择简介:在现代软件开发中,工作流程的管理是一个至关重要的方面。Java工作流框架是一种专门用于定义和执行工作流程的软件工具。它们可以帮助开发人员简化工作流程的开发和管理,提高效率和可靠性。本文将...

  • 周排行
  • 月排行
  • 年排行