首页 > js教程 > 正文

如何做一个简易的搜索引擎

原创 2018-09-14 17:15:13 0 158
赞助会员专享特权

有时候因为工作、自身的需求,我们都会去浏览不同网站去获取我们需要的数据,于是爬虫应运而生,下面是我在开发一个简单爬虫的经过与遇到的问题。

上一次小白已经得到了一个任劳任怨的网络小爬虫,要是不搞一波小事情似乎对不太起这个小爬虫,于是乎小白又鼓捣鼓捣参考各方大神的资料以倒排索引为基础原理设计了一个简答的搜索引擎。

之前的爬虫只是得到了网页的源码而没有做任何处理,乃是一个一次性的小爬虫,所以小白用正则表达式对网页内容进行匹配得到其中的网址,之后小爬虫就可以利用这个自生自灭至死方休的帮我们爬取网页拉,这里不得不提一下beautifulsoup和正则表达式了,据说beautifulsoup模块是一个网页爬取提取的利器,只可惜小宝在做完之后才听得大名万分遗憾没能试用一番,但是正则表达时小白可是切身的研究了一丢丢,熟练了(强行熟练)也是非常的好用,比如提取网页源码的网址:

    link_list = re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')", html)
    这一句就提出个七七八八来,当然这么粗糙鱼目混珠的情况也是少不了的,但是还是非常好用的,
    虽然看起来很复杂但是只要掌握了(?<)、(?=)、.、+、?这几种符号的用法小白觉得就可以解决大部分问题了,
    哦这里还有提一句,正则表达式似乎不支持嵌套的情形,
    大概形如“找到所有前面三个字符满足条件A的字符a,条件A是这三个字符前面的内容满足条件B”巴拉巴拉,
    好吧感觉说的好乱让我们暂且跳过这个话题。提取处理的匹配如果用findall是存储在列表中的,
    这样我们就可以在一个网页列表中一直加入新找到的链接一直重复爬取,小白这里自认为能力有限,
    所以就从提取中的网页链接爬取了100个网页做一个轻装版。这里提个醒,由于之前html链接提取的很粗糙,
    所以可能把各种形如网页链接的css文件路径、图片路径什么乱七八糟的给爬下来,
    不过我们这里就统一当作网页链接在一个try·except模块中进行connection,
    不是链接的就会出现异常我们只要捕获跳过就又可以愉快的继续了~~。
    有了爬取下来的网页内容下面就应该是得到其中真正呈现在网页中的东西了。
    写过网页的同学们都应该知道网页内容一般都在<p><\p>之中,title和链接什么的也有对应的标签,
    运用正则表单式理论上可以分离出来,不过小白亲身时间发现只匹配一次效果非常不好,
    匹配的内容的确包括想要的内容,但是因为标签一般都是嵌套的嘛而且小白技术毕竟也不好正则表达式可能表述的也有问题,
    所以总是会将内容嵌套在标签中返回,这里就有一个比较笨的方法供大家参考,咳咳,
    既然一次不能得到,那么就对内容进行再匹配,咳咳,经过了三层匹配外加一些小技巧终于是勉强匹配出来了,
    这里代码过于丑陋就不再贴出来了咳咳。

相关推荐:

Scrapy爬虫入门教程四 Spider(爬虫)

php实现简单爬虫的开发,php实现爬虫

以上就是如何做一个简易的搜索引擎的详细内容,更多请关注php中文网其它相关文章!

  • 相关标签:爬虫,js
  • 本文原创发布php中文网 ,转载请注明出处,感谢您的尊重!
  • 相关文章


  • node.js基础模块http、网页分析工具cherrio实现爬虫_node.js
  • nodejs爬虫抓取数据乱码问题总结_node.js
  • PHP+HTML+JavaScript+Css实现简单爬虫开发_php技巧
  • php 向访客和爬虫显示不同的内容_php技巧
  • 如何做一个简易的搜索引擎
  • 网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
    独孤九贱(4)_PHP视频教程

    独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(5)_ThinkPHP5视频教程

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    独孤九贱(1)_HTML5视频教程

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    ThinkPHP5实战之[教学管理系统]

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    PHP入门视频教程之一周学会PHP

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    相关视频教程

  • JS和jQuery开发购物车教程 JS和jQuery开发购物车教程
  • 极客学院ReactJS视频教程 极客学院ReactJS视频教程
  • 妙味课堂JS高级专题篇视频教程 妙味课堂JS高级专题篇视频教程
  • JS#jQuery宽高的理解和应用 JS#jQuery宽高的理解和应用
  • 相关视频章节