0

0

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

坏嘻嘻

坏嘻嘻

发布时间:2018-09-14 17:15:13

|

5099人浏览过

|

来源于php中文网

原创

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

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

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

      

    link_list = re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')", html)
    这一句就提出个七七八八来,当然这么粗糙鱼目混珠的情况也是少不了的,但是还是非常好用的,
    虽然看起来很复杂但是只要掌握了(?<)、(?=)、.、+、?这几种符号的用法小白觉得就可以解决大部分问题了,
    哦这里还有提一句,正则表达式似乎不支持嵌套的情形,
    大概形如“找到所有前面三个字符满足条件A的字符a,条件A是这三个字符前面的内容满足条件B”巴拉巴拉,
    好吧感觉说的好乱让我们暂且跳过这个话题。提取处理的匹配如果用findall是存储在列表中的,
    这样我们就可以在一个网页列表中一直加入新找到的链接一直重复爬取,小白这里自认为能力有限,
    所以就从提取中的网页链接爬取了100个网页做一个轻装版。这里提个醒,由于之前html链接提取的很粗糙,
    所以可能把各种形如网页链接的css文件路径、图片路径什么乱七八糟的给爬下来,
    不过我们这里就统一当作网页链接在一个try·except模块中进行connection,
    不是链接的就会出现异常我们只要捕获跳过就又可以愉快的继续了~~。
    有了爬取下来的网页内容下面就应该是得到其中真正呈现在网页中的东西了。
    写过网页的同学们都应该知道网页内容一般都在

<\p>之中,title和链接什么的也有对应的标签, 运用正则表单式理论上可以分离出来,不过小白亲身时间发现只匹配一次效果非常不好, 匹配的内容的确包括想要的内容,但是因为标签一般都是嵌套的嘛而且小白技术毕竟也不好正则表达式可能表述的也有问题, 所以总是会将内容嵌套在标签中返回,这里就有一个比较笨的方法供大家参考,咳咳, 既然一次不能得到,那么就对内容进行再匹配,咳咳,经过了三层匹配外加一些小技巧终于是勉强匹配出来了, 这里代码过于丑陋就不再贴出来了咳咳。

相关推荐:

BJXSHOP网上购物系统 - 书店版
BJXSHOP网上购物系统 - 书店版

BJXSHOP购物管理系统是一个功能完善、展示信息丰富的电子商店销售平台;针对企业与个人的网上销售系统;开放式远程商店管理;完善的订单管理、销售统计、结算系统;强力搜索引擎支持;提供网上多种在线支付方式解决方案;强大的技术应用能力和网络安全系统 BJXSHOP网上购物系统 - 书店版,它具备其他通用购物系统不同的功能,有针对图书销售而进行开发的一个电子商店销售平台,如图书ISBN,图书目录

下载

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

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

相关专题

更多
vlookup函数使用大全
vlookup函数使用大全

本专题整合了vlookup函数相关 教程,阅读专题下面的文章了解更多详细内容。

26

2025.12.30

金山文档相关教程
金山文档相关教程

本专题整合了金山文档相关教程,阅读专题下面的文章了解更多详细操作。

28

2025.12.30

PS反选快捷键
PS反选快捷键

本专题整合了ps反选快捷键介绍,阅读下面的文章找到答案。

25

2025.12.30

表格中一行两行的方法
表格中一行两行的方法

本专题整合了表格中一行两行的相关教程,阅读专题下面的文章了解更多详细内容。

3

2025.12.30

cpu温度过高解决方法大全
cpu温度过高解决方法大全

本专题整合了cpu温度过高相关教程,阅读专题下面的文章了解更多详细内容。

5

2025.12.30

ASCII码介绍
ASCII码介绍

本专题整合了ASCII码相关内容,阅读专题下面的文章了解更多详细内容。

31

2025.12.30

GPS是什么
GPS是什么

本专题整合了GPS相关内容,阅读专题下面的文章了解更多详细内容。

3

2025.12.30

wifi拒绝接入
wifi拒绝接入

本专题整合了wifi拒绝接入相关教程,阅读下面的文章了解更多详细方法。

9

2025.12.30

丰网速运介绍
丰网速运介绍

本专题整合了丰网速运查询入口以及相关内容,阅读专题下面的文章了解更多内容。

3

2025.12.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号