15行Python 仿百度搜索引擎
开发工具:PyCharm
开发环境:python3.6 + flask + requests
开发流程:
1. 启动一个web服务
from flask import Flask app = Flask(__name__) if __name__ == '__main__':app.run(host='127.0.0.1', port=6666)
2. 增加app.route装饰器
from flask import Flaskapp = Flask(__name__)@app.route('/') def index():return 'Hello World' if __name__ == '__main__':app.run(host='127.0.0.1', port=5000)
3. 增加index.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>仿百度搜索</title><style type="text/css">.align-center{position:fixed;left:30%;top:30%;margin-left:width/2;margin-top:height/2;}</style> </head> <body><form action="/s" method="get"><div class="align-center"><input type="search" name="key"> <input type="submit" value="搜索"><br></div></form> </body> </html>
index.html
4. 增加 render_template
from flask import Flask from flask import render_template app = Flask(__name__)@app.route('/') def index():return render_template('index.html') if __name__ == '__main__':app.run(host='127.0.0.1', port=5000)
5. 增加返回结果
@app.route('/s') def search():return 'Hello World'
6. spider.py
import requestsdef getBdMsg(keyword):headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"}res = requests.get('https://www.baidu.com/s?wd={}'.format(keyword), headers = headers).textreturn res
7. 获取搜索框关键字,通过爬虫程序搜索,获得百度搜索结果
from flask import Flask from flask import render_template from flask import request from spider import getBdMsg app = Flask(__name__)@app.route('/') def index():return render_template('index.html')@app.route('/s') def search():keyword = request.args.get("key")text = getBdMsg(keyword)return textif __name__ == '__main__':app.run(host='127.0.0.1', port=5000)
8. 修改spider.py的返回结果,通过链式replace(),替换百度图标和“百度一下”
return res.replace('//www.baidu.com/img/baidu_jgylogo3.gif','static/images/google.png').replace('百度一下', 'Google')
附完整源码:
# -*- coding: utf-8 -*- # @Time : 2018/3/19 12:46 # @Author : TanRong # @Software: PyCharm # @File : search.pyfrom flask import Flask from flask import render_template from spider import getBdMsg from flask import request# Flask(__name__).run() app = Flask(__name__)#app.route装饰器 @app.route('/') def index():return render_template('index.html')@app.route('/s') def search():keyword = request.args.get('key')text = getBdMsg(keyword)return textif __name__ == '__main__':app.run()
search.py
# -*- coding: utf-8 -*- # @Time : 2018/3/21 18:07 # @Author : TanRong # @Software: PyCharm # @File : spider.pyimport requestsdef getBdMsg(keyword):# 必须加上请求头,这样才是浏览器请求,不然无返回结果# F12 - NetWork - Requeset Headers - UserAgentheaders = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"}res = requests.get('https://www.baidu.com/s?wd={}'.format(keyword), headers = headers).textreturn res.replace('//www.baidu.com/img/baidu_jgylogo3.gif','static/images/google.png').replace('百度一下','Google').replace('百度','Google') #链式replace()if __name__ == '__main__':getBdMsg('风景')
spider.py
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>仿百度搜索</title><style type="text/css">.align-center{position:fixed;left:30%;top:30%;margin-left:width/2;margin-top:height/2;}</style> </head> <body><form action="/s" method="get"><div class="align-center"><input type="search" name="key"> <input type="submit" value="搜索"><br></div></form> </body> </html>
index.html
转载于:https://www.cnblogs.com/tanrong/p/8641321.html
15行Python 仿百度搜索引擎相关推荐
- 15行Python代码,帮你理解令牌桶算法
在网络中传输数据时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀的速度向外发送,令牌桶算法就实现了这个功能,可控制发送到网络上数据的数目,并允许突发数据的发送. 什么是令牌 从名字上看令牌 ...
- python ray定时_使用 Ray 用 15 行 Python 代码实现一个参数服务器
使用 Ray 用 15 行 Python 代码实现一个参数服务器 参数服务器是很多机器学习应用的核心部分.其核心作用是存放机器学习模型的参数(如,神经网络的权重)和提供服务将参数传给客户端(客户端通常 ...
- 【script】15行Python代码实现免费发送手机短信推送消息功能(twilio)
实现的功能 通过代码定时给手机推送短信,短信内容可以自定义文字,当然你也可以去别的网站爬取每日心灵鸡汤,天气预报或其它信息进行推送. 本文主要讲如何实现发送短信的功能,全部代码只用15行. 首先贴出实 ...
- python核心编程:大神如何用15行Python代码实现网易云热门歌单实例教程
这篇文章主要给大家介绍了关于利用15行Python代码实现网易云热门歌单的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学 ...
- 15行用Python实现仿百度搜索引擎
工具: 开发工具:PyCharm 开发环境:python3.6 + flask + requests 开发流程: 1. 启动一个web服务 from flask import Flask app = ...
- 零基础如何用 15 行 Python 代码搞定网易云热门歌单?
健身.吃饭.敲代码:等车.撸猫.下午茶--若能佐以合适的音乐当"配餐",总是惬意非常.本文就将带你爬一爬网易云的那些热门歌单! 作者 | 上海小胖 责编 | 仲培艺 心情好或心情坏 ...
- 15行Python代码将图片转为Excel
编写了一小段Python代码,将图片转为了Excel,纯属娱乐.原理很简单,就是将图片每个像素的颜色填充到Excel对应的单元格中. 原图(horse.jpg): 转换后的Excel文档(horse. ...
- Python借助百度搜索引擎爬取Python小屋密切相关文章
封面图片:<Python程序设计实验指导书>(ISBN:9787302525790),董付国,清华大学出版社 ============= 第一步,查看本机Chrome浏览器版本. 第二步, ...
- python好看图案的编程代码_只需15行Python代码,实现图像定位功能
引言本教程使用的环境:Windows 10 + Python 3.6 数据源:The Oxford-IIIT Pet Dataset 需要的第三方库:import tensorflow as tf i ...
最新文章
- 通过sessionid获取session php,php如何返回sessionID和如何通过sessionID获取相关的session...
- Oracle真实世界数据链——将现实世界和区块链世界相互打通——让主流币爆涨十倍的项目
- mysql 添加多条数据类型_向数据库添加多条数据类型
- apache评分表的意义_APACHE评分系统及评分表
- 微课|中学生可以这样学Python(8.1节):解析算法例题讲解
- JavaScript 学到什么程度可以学 Node.js?
- Linux命令解释之chown
- linux显示文件开头部分内容,一天一个linux基础命令之查看文件开头部分内容head...
- Ionic3.x/Ionic4.x项目实战视频教程
- C# 写入CSV文件
- 第一章 SQL中使用的符号
- 经典语录(确实经典)
- armbian 斐讯n1_斐讯N1安装Armbian
- Android学习笔记之如何使用圆形菜单实现旋转效果...
- 华为云与阿里云简要区别
- Netty获取客户端IP
- 实现PPT的在线预览(动态,及转PDF)
- video.js API
- 求网络的拉普拉斯矩阵(python)
- 折半查找(二分查找)的理解
热门文章
- PHP单元测试使用手册
- JVM空间申请流程图
- 云计算被误解 但也许并不重要
- 关于宁波一些眼科流传的营养针
- pymysql.err.InternalError: (1130, Host '127.0.0.1' is not allowed to connect to this MySQL server)
- datatable修改csv的最后一列
- python委托模式详细解释
- 矩阵论:线性空间与线性变换
- OpenCV与Qt:IplImage转换为QImage
- JavaScript中发布/订阅模式的理解