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

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

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

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

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

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

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

  4. python核心编程:大神如何用15行Python代码实现网易云热门歌单实例教程

    这篇文章主要给大家介绍了关于利用15行Python代码实现网易云热门歌单的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学 ...

  5. 15行用Python实现仿百度搜索引擎

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

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

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

  7. 15行Python代码将图片转为Excel

    编写了一小段Python代码,将图片转为了Excel,纯属娱乐.原理很简单,就是将图片每个像素的颜色填充到Excel对应的单元格中. 原图(horse.jpg): 转换后的Excel文档(horse. ...

  8. Python借助百度搜索引擎爬取Python小屋密切相关文章

    封面图片:<Python程序设计实验指导书>(ISBN:9787302525790),董付国,清华大学出版社 ============= 第一步,查看本机Chrome浏览器版本. 第二步, ...

  9. python好看图案的编程代码_只需15行Python代码,实现图像定位功能

    引言本教程使用的环境:Windows 10 + Python 3.6 数据源:The Oxford-IIIT Pet Dataset 需要的第三方库:import tensorflow as tf i ...

最新文章

  1. 通过sessionid获取session php,php如何返回sessionID和如何通过sessionID获取相关的session...
  2. Oracle真实世界数据链——将现实世界和区块链世界相互打通——让主流币爆涨十倍的项目
  3. mysql 添加多条数据类型_向数据库添加多条数据类型
  4. apache评分表的意义_APACHE评分系统及评分表
  5. 微课|中学生可以这样学Python(8.1节):解析算法例题讲解
  6. JavaScript 学到什么程度可以学 Node.js?
  7. Linux命令解释之chown
  8. linux显示文件开头部分内容,一天一个linux基础命令之查看文件开头部分内容head...
  9. Ionic3.x/Ionic4.x项目实战视频教程
  10. C# 写入CSV文件
  11. 第一章 SQL中使用的符号
  12. 经典语录(确实经典)
  13. armbian 斐讯n1_斐讯N1安装Armbian
  14. Android学习笔记之如何使用圆形菜单实现旋转效果...
  15. 华为云与阿里云简要区别
  16. Netty获取客户端IP
  17. 实现PPT的在线预览(动态,及转PDF)
  18. video.js API
  19. 求网络的拉普拉斯矩阵(python)
  20. 折半查找(二分查找)的理解

热门文章

  1. PHP单元测试使用手册
  2. JVM空间申请流程图
  3. 云计算被误解 但也许并不重要
  4. 关于宁波一些眼科流传的营养针
  5. pymysql.err.InternalError: (1130, Host '127.0.0.1' is not allowed to connect to this MySQL server)
  6. datatable修改csv的最后一列
  7. python委托模式详细解释
  8. 矩阵论:线性空间与线性变换
  9. OpenCV与Qt:IplImage转换为QImage
  10. JavaScript中发布/订阅模式的理解