Python爬虫(5)自制简单的搜索引擎

  平时我们要搜索某个东西的时候,我们往往会用到百度百科,比如搜“上海”,会出现以下页面:


百度词条 上海

  那么,我们能不能利用爬虫,自己制作一个简单的搜索引擎呢?
  Why not?!我们自作简单的搜索引擎,展示输入词条的简介部分,这样可以既减少工作量,又展示了该搜索引擎的基本原理。
  以下为笔者制作的简单的搜索引擎,实现的功能为:读取输入的词条,并输出百度百科里该词条的简介部分。

# -*- coding: utf-8 -*-
"""
Created on Fri Aug 18 15:58:13 2017
@author: JClian
"""
import re
import bs4
import urllib.request  
from bs4 import BeautifulSoup 
import urllib.parse
import sys

search_item = input("Enter what you want(Enter 'out' to exit):")
while search_item != 'out':
    if search_item == 'out':
        exit(0)
    print("please wait...")
    try:
        url = 'https://baike.baidu.com/item/'+urllib.parse.quote(search_item)
        html = urllib.request.urlopen(url)  
        content = html.read().decode('utf-8')
        html.close()
        soup = BeautifulSoup(content, "lxml")  
        text = soup.find('div', class_="lemma-summary").children
        print("search result:")
        for x in text:
            word = re.sub(re.compile(r"<(.+?)>"),'',str(x))
            words = re.sub(re.compile(r"\[(.+?)\]"),'',word)
            print(words,'\n')
    except AttributeError:
        print("Failed!Please enter more in details!")
    search_item = input("Enter what you want(Enter 'out' to exit):")

其中search_item为输入词条,进入while循环可一直搜索,当输入为'out'时退出。text为该词条的百度百科简介的网页形式,通过正则表达式将其中的文字提取出来(当然提取后的文字形式还有待美化)。如果百度百科里没有该词条,输出失败信息,并提示测试这将词条具体化些再输入。这样,百度百科有的词条,我们这个搜索引擎里也就有了响应的简介部分。
  接下来是测试时间(在Jupyter Notebook上测试):
  

词条 上海市

  
词条 南京 南京市

  
词条 井上真央

  测试效果还是不错的,真是简单又好使,要不你也来试试?
 

  本篇分享如有不足之处,还请批评指正。欢迎交流~~
  期待下一篇分享...

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 搜索引擎优化(Search engine optimization,简称SEO),指为了提升网页在搜索引擎自然搜索...
    翻滚吧海阔天空阅读 4,243评论 5 14
  • 在曾经惶惶不安的岁月里,我们就像是一抹朝阳,无忧无虑,只知道给世界带去新生迎接欢乐。可是当越长大,经历的越多,就越...
    柒如也阅读 1,143评论 2 3
  • 个人成长抄模100天# 002天/100天 by 月夜吸血鬼 过程记录 日期:2017年12月9日07:35:02...
    思锐爱知识阅读 236评论 1 0
  • 温暖孵化不出坚韧/柔软塑造不出挺拔/岁月不断拖走你的东西/终会全部打包奉还。 ...
    文学社成员阅读 672评论 0 0
  • 什么是设计模式 小说家和剧本作家很少从头开始设计剧情。他们总是沿袭一些业已存在的模式像“悲剧性英雄”模式(《哈姆雷...
    Terry阅读 940评论 0 47

友情链接更多精彩内容