工具:

开发工具: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实现仿百度搜索引擎相关推荐

  1. 15行Python 仿百度搜索引擎

    开发工具:PyCharm 开发环境:python3.6 + flask + requests 开发流程: 1. 启动一个web服务 from flask import Flask app = Flas ...

  2. python爬虫——利用百度搜索引擎爬取所需图片

    参考:python 爬取动态网页(百度图片) 说明:在上面这位博主的贴子的基础上做了一些改进,解决了有些URL无法访问导致的请求超时异常抛出致使程序退出的问题.话不多说,直接上代码. import r ...

  3. Python到底有多强大?只需 15 行代码即可进行人脸检测

    无论你是最近开始探索OpenCV还是已经使用它很长一段时间,在任何一种情况下,您都一定遇到过"人脸检测"这个词.随着机器变得越来越智能,它们模仿人类行为的能力似乎也在增加,而人脸检 ...

  4. 15行Python代码,帮你理解令牌桶算法

    在网络中传输数据时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀的速度向外发送,令牌桶算法就实现了这个功能,可控制发送到网络上数据的数目,并允许突发数据的发送. 什么是令牌 从名字上看令牌 ...

  5. python代码300行程序_python小工具,15行代码秒出工资条

    公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事! 先来看看原始数据是什么样子: 最后做成的效果: 使用Excel每 ...

  6. 零基础如何用 15 行 Python 代码搞定网易云热门歌单?

    健身.吃饭.敲代码:等车.撸猫.下午茶--若能佐以合适的音乐当"配餐",总是惬意非常.本文就将带你爬一爬网易云的那些热门歌单! 作者 | 上海小胖 责编 | 仲培艺 心情好或心情坏 ...

  7. python ray定时_使用 Ray 用 15 行 Python 代码实现一个参数服务器

    使用 Ray 用 15 行 Python 代码实现一个参数服务器 参数服务器是很多机器学习应用的核心部分.其核心作用是存放机器学习模型的参数(如,神经网络的权重)和提供服务将参数传给客户端(客户端通常 ...

  8. Python 打造基于百度翻译的命令行翻译工具

    Python 打造基于百度翻译的命令行翻译工具 由于英文水平一般,所以还是非常依赖翻译工具的.fanyi.baidu.com 都成了我浏览器必开的网页之一了.昨天项目上线,等待过程中,无聊写了一个基于 ...

  9. 【script】15行Python代码实现免费发送手机短信推送消息功能(twilio)

    实现的功能 通过代码定时给手机推送短信,短信内容可以自定义文字,当然你也可以去别的网站爬取每日心灵鸡汤,天气预报或其它信息进行推送. 本文主要讲如何实现发送短信的功能,全部代码只用15行. 首先贴出实 ...

最新文章

  1. CVPR 2020 | 将深度学习算法应用于移动端最新研究汇总
  2. linux mysql cpu 查看工具_Shell编程检测监控MySQL的CPU占用率
  3. Struts2---入门
  4. ByteBuf主要继承关系图
  5. 95-864-040-源码-HDFS-Flink 和 HDFS 的交互
  6. spark内核揭秘-06-TaskSceduler启动源码解析初体验
  7. 开发软件快捷键(持续更新中)
  8. 19 个 K8S 日常故障处理集锦
  9. epoll编程实例客户端_网络编程:epoll
  10. python样本不均衡_三招提拔数据不均衡模子的机能(附python代码)
  11. 在OS X中使用Homebrew
  12. Android Button按钮周围添加图片
  13. Linu中的网络配置(设置ip,网关(路由功能),dns),虚拟机上网
  14. android 版本号 7.0 O,微信全面上线64位7.0.9版本:运行速度更快,你更新了吗?(附下载)...
  15. 京东客服岗位人才考试
  16. ui设计现状与意义_UI设计的现状如何?
  17. 网站压力测试工具was
  18. 对梯度幅值进行非极大值抑制
  19. 安搭Share:“张而不弛,文武佛能也;一张一弛,文武之道也。”
  20. kafka 消费者的消费策略以及再平衡

热门文章

  1. 深度学习 vs SLAM
  2. 算法导论——优先队列(大到小)
  3. 【学习笔记】2、Python - Jupyter Notebook界面基础
  4. 使用SMARTFORM字段参数设置解决SMARTFORM中数量、金额字段显示问题
  5. 【转】SAP地产业正青春
  6. 查看凭证更改记录的三种方式
  7. MR21 VS MR22 对CKMLCP结果影响
  8. 关于印发《会计电算化管理办法》等规章的通知
  9. 成本要素区分成本中心
  10. SAP MM 移动类型-入门篇