实验目的是用python编写网络搜索程序,完成对一个特定网站的文本搜索。对站内网页内容进行分词并建立倒排索引结构,通过输入文本词汇,检索出站内所有网页内容中出现过此文本的网页。

流程是:抓取网页链接,分词,建立索引,对关键词分词后进行搜索。

一.链接抓取

由于不是简单地就在一个网站上进行正则匹配,得出结果,要在网站得到链接后,再以新得链接为基准,继续深度抓取,所以设置了以newpages为中间值的循环。

Crawl()引入BeatifulSoup包,用包中函数soup('a'),查找可能含有链接的部分,简单方便。通过判断初始四个字母为http,则把网页链接加入newpages参与循环。

每抓取一个链接,立即建立索引,引用addtoindex()函数。

二.分词

每网页建立索引addtoindex()之前,会先获取文本信息和分词处理,导入jieba包,引用jieba.cut_for_search()函数。

获取文本信息

   分词处理

三.建立索引

创建3个链表类型,3个节点类型(括号中表示)。

Linklist(Node):对每一个网页分词后,将词加入此链表

Weblist(Web):把网页按照所拥有的词加入词链表,接在词的后面。

Resultlist(Result):搜索结果加入此链表

以及定义停用词ignorewords=set(['的','但是','然而','能','在','以及','可以','使'])。

四.搜索

输入搜索词汇,分词处理,在Linklist链表遍历,并且进行去重处理。

Python实现抓取链接/分词/索引/搜索关键词——简单搜索引擎相关推荐

  1. python怎么抓取网页倒计时_python实现的简单窗口倒计时界面实例

    本文实例讲述了python实现的简单窗口倒计时界面.分享给大家供大家参考.具体分析如下: 下面的代码通过Tkinter制作windows窗口界面,然后时间了一个简单的倒计时功能,代码可以直接运行 # ...

  2. Python + PySpider 抓取百度图片搜索的图片

    说明 1.PySpider 是一个方便并且功能强大的Python爬虫框架 2.PySpider 依赖于PhantomJS 3.windows平台,PySpider 与64位的Python兼容不太好,需 ...

  3. Python爬虫抓取考试试题

    Python爬虫抓取考试试题 今天做了个小玩意,但觉得挺有意思的,分享给大家.主要是这样的,因为帮妹子寻找考试资料,发现同一本书不同的章节分别在不同的链接中,复制起来实在要命,所以就在想能不能用爬虫实 ...

  4. 利用 Python 自动抓取微博热搜,并定时发送至邮箱

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来. ...

  5. python数据抓取

    python数据抓取 一.页面分析 二.网页抓取方法 1.正则表达式方法 2.BeautifulSoup 模块 3.lxml 模块 4.各方法的对比总结 三.Xpath选择器 四.CSS选择器 五.数 ...

  6. python 爬虫抓取心得分享

    /** author: insun title:python 爬虫抓取心得分享 blog:http://yxmhero1989.blog.163.com/blog/static/11215795620 ...

  7. python爬虫论坛代码_如何使用Python爬虫 抓取论坛关键字出现频率!

    前言: 之前学习了用python爬虫的基本知识,现在计划用爬虫去做一些实际的数据统计功能.由于前段时间演员的诞生带火了几个年轻的实力派演员,想用爬虫程序搜索某论坛中对于某些演员的讨论热度,并按照日期统 ...

  8. python爬虫招聘-Python爬虫抓取智联招聘(基础版)

    原标题:Python爬虫抓取智联招聘(基础版) 作者:C与Python实战 「若你有原创文章想与大家分享,欢迎投稿.」 对于每个上班族来说,总要经历几次换工作,如何在网上挑到心仪的工作?如何提前为心仪 ...

  9. 编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法

    这篇文章主要介绍了编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法,用到了Python的urllib和urllib2模块,需要的朋友可以参考下 抓取豆瓣电影TOP100 一.分析豆瓣top ...

最新文章

  1. UnitOfWork以及其在ABP中的应用
  2. 01-sql优化及索引
  3. 生成对抗网络系列—ACL-GAN
  4. 你应该掌握的产品研发管理流程及常见问题处理
  5. idea快速创建包快捷键大全_idea快捷键大全
  6. JAVA:Array List和Linked List
  7. 赠人玫瑰,手有余香, 下面请听仙居义工专题报道
  8. 错排公式——n封信放入n个信封,要求全部放错,共有多少种放法
  9. Android error: “Apostrophe not preceded by \” 解决办法
  10. 解决黑苹果 App Store 无限输入密码的方法
  11. java网课|static
  12. win7不能在本地计算机启动防火墙,win7操作中心无法启用防火墙怎么解决
  13. panda是删除行_pandas删除包含指定内容的行
  14. 齐岳|聚乙二醇-四氧化三铁-二氢卟吩纳米复合物Fe3O4-PEG-Ce6|肝靶向功能的四氧化三铁Fe3O4纳米粒子
  15. bibtex类型以及格式要求
  16. 算法收敛性以及收敛速度的理解
  17. Android——透明色
  18. [视觉SLAM十四讲]学习笔记2-关于欧拉角和万向锁
  19. java中atomic特点,Java中Atomic类的使用分析
  20. java 鸡尾酒排序_算法渣-排序-冒泡

热门文章

  1. 以小25倍参数量媲美GPT-3的检索增强自回归语言模型:RETRO
  2. 原来微信就能生成证件照,再也不傻傻地往照相馆跑了,办法很简单
  3. L1-038 新世界 (5 分)C语言
  4. 转:浅析镜头分辨率和MTF测试
  5. jQuery Datepicker 日期插件
  6. 应该手动抛出什么异常?RuntimeException?
  7. cesium将默认底图设置为不显示
  8. 大脑-计算机界面(bci,BrainOS人类大脑智能操作系统初步成果被展出
  9. Linux | buildroot使用介绍
  10. 拉勾网认证企业信息采集