百度词条上海,我们能不能利用爬虫制作一个简单的搜索引擎?

优采云 发布时间: 2021-07-22 04:19

  百度词条上海,我们能不能利用爬虫制作一个简单的搜索引擎?

  通常我们要搜索的时候,经常会使用百度百科,比如搜索“上海”,就会出现如下页面:

  

  百度进入上海

  那么,我们可以使用爬虫自己创建一个简单的搜索引擎吗?

  为什么不呢? !我们做了一个简单的搜索引擎来展示输入词的介绍部分,既可以减少工作量,又可以展示搜索引擎的基本原理。

  以下是作者做的一个简单的搜索引擎,实现的功能是:读取输入词条,输出百度百科词条的介绍部分。

  # -*- 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 上测试):

  

  进入上海

  

  进入南京南京市

  

  进入井上真央

  测试结果还是不错的,真的很简单好用,何不试试呢?

  本次分享如有不足之处,敬请批评指正。欢迎交流~~

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线