使用Flask构建Web网页搜索工具
使用Flask构建Web网页搜索工具
想要快速搭建一个网页搜索工具吗?本文将教你如何使用Python的Flask框架创建一个简单的网页应用,该应用可以抓取百度搜索结果并展示在页面上。
**代码示例:**pythonfrom flask import Flask, render_template, requestfrom bs4 import BeautifulSoupimport requestsimport timeimport webbrowser
app = Flask(name)
def crawl_baidu(keyword): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' } url = f'https://www.baidu.com/s?wd={keyword}' time.sleep(2) # 添加延迟,避免被识别为爬虫 response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser')
results = [] for result in soup.find_all('div', class_='result'): result_url = result.find('a')['href'] results.append(result_url)
return results
@app.route('/', methods=['GET', 'POST'])def index(): if request.method == 'POST': keyword = request.form['keyword'] search_results = crawl_baidu(keyword) return render_template('results.html', keyword=keyword, search_results=search_results) return render_template('index.html')
@app.route('/open_url', methods=['POST'])def open_url(): url = request.form['url'] if url: webbrowser.open(url) return ''
if name == 'main': app.run()
代码解析:
- 导入必要的库: 包括Flask, BeautifulSoup, requests等。2. 定义
crawl_baidu函数: 该函数接收一个关键词作为参数,模拟浏览器向百度发送请求,解析HTML页面提取搜索结果链接,并返回一个列表。3. 创建Flask应用: 使用app = Flask(__name__)实例化Flask应用。4. 定义路由和视图函数: *index函数处理主页请求,根据请求方式(GET/POST)返回不同的页面。 *open_url函数处理异步请求,用于在新的浏览器窗口打开搜索结果链接。5. 运行应用: 使用app.run()启动Flask应用。
使用说明:
- 确保已安装Python和必要的库 (Flask, BeautifulSoup, requests)。2. 创建两个HTML模板文件
index.html和results.html, 用于渲染搜索界面和结果。3. 运行代码,并在浏览器中访问http://127.0.0.1:5000/开始使用。
注意:
- 本代码仅供学习和参考,请勿用于商业用途。* 在实际应用中,需要考虑更多因素,例如错误处理、反爬虫机制、搜索结果分页等。
希望这篇文章能够帮助你了解如何使用Flask构建一个简单的网页搜索工具。
原文地址: https://www.cveoy.top/t/topic/pUA 著作权归作者所有。请勿转载和采集!