Python + Bottle + 谷歌搜索Api 实现简单搜索引擎

本文介绍了如何在Python3和CentOS7环境下,利用轻量级Web框架Bottle,结合谷歌搜索API构建一个简单的搜索引擎。通过学习Bottle的基本使用和源码分析,以及展示关键代码,展示了整个实现过程。
摘要由CSDN通过智能技术生成

1.运行环境

  1. python3
  2. centos7

2.Bottle的使用

使用bottle主要是因为它仅用python自带的库即可实现对web的搭建。
bottle源码分析
bottle使用教程

3.代码

#app.py
from bottle import route, run ,Bottle ,error ,static_file ,request 
from bottle import view , template 

from app import search
from data import db
import json

#import views

#实例化一个app
app = Bottle()
#读取api数据
data = db.data()
data.read()

@app.route('/')
@view("home")
def index():
    """
    首页
    """
    return #template('home')

@app.route('/<query>')
@view("search")
def query(query):
    """
    执行查询操作:/关键词
    """
    global data
    key = data.touch()
    res = search.query(query,key)
    res = json.loads(res)
    return res


@app.route('/api/<query>')
def apiQuery(query):
    """
    查询接口的api,返回json数据
    """
    global data
    key = data.touch()
    res = search.apiQuery(query,key)
    #res = json.loads(res)
    return res

@app.route('/man/getall')
def manGetall():
    """
    获取所有api信息
    """
    global data
    #res = json.loads(res)
    list = data.getAll()
    res = ''
    for i in list:
      res = res + i[0] + " " + i[1] + "<br>"
    print(res)
    return res

@app.route('/search')
@view("search")
def query2():
    """
    另一种搜索传参方式:q=关键词
    """
    global data
    key = data.touch()
    q = request.query.q
    #print(q)
    res = search.query(q,key)
    res = json.loads(res)
    return res

@error(404)
def error404(error):
    """
    404
    """
    return 'Nothing here, sorry'

@app.route('/static/<filename>')
def server_static(filename):
    """
    静态文件返回数据
    """
    #print("***")
    #filename = filename + ".ico"
    return static_file(filename, root='./static')

app.run(host='localhost', port=9090)
#search.py
import urllib
import urllib.request
from urllib import parse
import json

#指定站点搜索&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值