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装饰器
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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. 获取搜索框关键字,通过爬虫程序搜索,获得百度搜索结果
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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')
附完整源码:
search.py
# -*- coding: utf-8 -*-
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from 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()
spider.py
# -*- coding: utf-8 -*-
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import 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('风景')
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>
15行用Python实现仿百度搜索引擎相关推荐
- 15行Python 仿百度搜索引擎
开发工具:PyCharm 开发环境:python3.6 + flask + requests 开发流程: 1. 启动一个web服务 from flask import Flask app = Flas ...
- python爬虫——利用百度搜索引擎爬取所需图片
参考:python 爬取动态网页(百度图片) 说明:在上面这位博主的贴子的基础上做了一些改进,解决了有些URL无法访问导致的请求超时异常抛出致使程序退出的问题.话不多说,直接上代码. import r ...
- Python到底有多强大?只需 15 行代码即可进行人脸检测
无论你是最近开始探索OpenCV还是已经使用它很长一段时间,在任何一种情况下,您都一定遇到过"人脸检测"这个词.随着机器变得越来越智能,它们模仿人类行为的能力似乎也在增加,而人脸检 ...
- 15行Python代码,帮你理解令牌桶算法
在网络中传输数据时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀的速度向外发送,令牌桶算法就实现了这个功能,可控制发送到网络上数据的数目,并允许突发数据的发送. 什么是令牌 从名字上看令牌 ...
- python代码300行程序_python小工具,15行代码秒出工资条
公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事! 先来看看原始数据是什么样子: 最后做成的效果: 使用Excel每 ...
- 零基础如何用 15 行 Python 代码搞定网易云热门歌单?
健身.吃饭.敲代码:等车.撸猫.下午茶--若能佐以合适的音乐当"配餐",总是惬意非常.本文就将带你爬一爬网易云的那些热门歌单! 作者 | 上海小胖 责编 | 仲培艺 心情好或心情坏 ...
- python ray定时_使用 Ray 用 15 行 Python 代码实现一个参数服务器
使用 Ray 用 15 行 Python 代码实现一个参数服务器 参数服务器是很多机器学习应用的核心部分.其核心作用是存放机器学习模型的参数(如,神经网络的权重)和提供服务将参数传给客户端(客户端通常 ...
- Python 打造基于百度翻译的命令行翻译工具
Python 打造基于百度翻译的命令行翻译工具 由于英文水平一般,所以还是非常依赖翻译工具的.fanyi.baidu.com 都成了我浏览器必开的网页之一了.昨天项目上线,等待过程中,无聊写了一个基于 ...
- 【script】15行Python代码实现免费发送手机短信推送消息功能(twilio)
实现的功能 通过代码定时给手机推送短信,短信内容可以自定义文字,当然你也可以去别的网站爬取每日心灵鸡汤,天气预报或其它信息进行推送. 本文主要讲如何实现发送短信的功能,全部代码只用15行. 首先贴出实 ...
最新文章
- CVPR 2020 | 将深度学习算法应用于移动端最新研究汇总
- linux mysql cpu 查看工具_Shell编程检测监控MySQL的CPU占用率
- Struts2---入门
- ByteBuf主要继承关系图
- 95-864-040-源码-HDFS-Flink 和 HDFS 的交互
- spark内核揭秘-06-TaskSceduler启动源码解析初体验
- 开发软件快捷键(持续更新中)
- 19 个 K8S 日常故障处理集锦
- epoll编程实例客户端_网络编程:epoll
- python样本不均衡_三招提拔数据不均衡模子的机能(附python代码)
- 在OS X中使用Homebrew
- Android Button按钮周围添加图片
- Linu中的网络配置(设置ip,网关(路由功能),dns),虚拟机上网
- android 版本号 7.0 O,微信全面上线64位7.0.9版本:运行速度更快,你更新了吗?(附下载)...
- 京东客服岗位人才考试
- ui设计现状与意义_UI设计的现状如何?
- 网站压力测试工具was
- 对梯度幅值进行非极大值抑制
- 安搭Share:“张而不弛,文武佛能也;一张一弛,文武之道也。”
- kafka 消费者的消费策略以及再平衡