百度词条上海,我们能不能利用爬虫制作一个简单的搜索引擎?
优采云 发布时间: 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 上测试):
进入上海
进入南京南京市
进入井上真央
测试结果还是不错的,真的很简单好用,何不试试呢?
本次分享如有不足之处,敬请批评指正。欢迎交流~~