爬虫写一个 “搜索引擎”,炒鸡简单。

2023-05-16

 写搜索引擎前,我们需要简答了解一下flask 这个轻量级的web的框架,如果没有这个模块 只需要 pip install flask 即可

然后我们需要用html写一个最初的 搜索框,并且命名这个文件为sheng.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<form action="/s" method="get">
    搜索:<input type="text"><br>
    <input type="submit" value="查找"><br>
</form>>
</body>
</html>

接下来我吗就需要让这个 搜索框显示出来,这里用到flask,先引入一些包 然后用@app.route 让他显示

from flask import Flask
from flask import render_template
from spider import getBdMsg
from flask import request 
@app.route('/')
def index():
    return render_template('sheng.html')

这是最初的效果(水平还是比较菜的了)

 然后我们需要写一个爬取的网页,创建spider.py文件。去爬取现有的搜索引擎360.

import requests

'''
封装请求
'''
def getBdMsg(keyword):
        url = ('https://www.so.com/s?q={}'.format(keyword)) #keyword是最初的搜索框输入的东西
        
        headers = {
        'User-Agent':
        'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36',
        'ContentType':
        'text/html; charset=utf-8',
        'Accept-Encoding':
        'gzip, deflate, sdch',
        'Accept-Language':
        'zh-CN,zh;q=0.8',
        'Connection':
        'keep-alive',
        } #伪装用
        htmlcontet = requests.get(url, headers=headers, timeout=1)#获取网页
        htmlcontet.raise_for_status()
        htmlcontet.encoding = 'utf-8'#使网页变为tuf-8编码
        html = htmlcontet.text
'''替换一些东西'''
        html=html.replace('<div class="g-hd-logo">','<div class="g-hd-lo">')
        html=html.replace('<input type="submit" tabindex="3" id="su" value="搜索" class="s_btn">','<input type="submit" tabindex="3" id="su" value="胜哥搜索" class="s_btn">') 
        html=html.replace('<a class="title" href="https://www.so.com?src=sidenav_www">360搜索首页</a>','<a class="title" href="https://www.so.com?src=sidenav_www">胜哥搜索首页</a>')
        html=html.replace('360搜索','胜哥搜索')
        return html

if __name__ == '__main__':
    print(getBdMsg("python")) '''看一下是否爬取成功'''

然后在回到flsk这个文件中。继续用 @app.route 让他去显示爬取的网页

@app.route('/s')
def s():
    keyword = request.args.get('wd')#获取最初的搜索框输入的东西
    text=getBdMsg(keyword) #调用getBdMsg函数 取爬去网页
    return text

 最后if __name__=='__main__' 判断是否是py文件  来运行上面的 @app.route

if __name__=='__main__':
    app.run()

 最后的效果,你可以拿出去装逼了,属于自己的搜索引擎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爬虫写一个 “搜索引擎”,炒鸡简单。 的相关文章

  • 树莓派ubuntu mate16.04 ROS kinetic launch文件开机自启动 robot-upstart

    本篇记录一下如何使用robot upstart功能包实现launch文件的开机自启动 环境 树莓派3B 43 xff0c ubuntu mate16 04 xff0c ROS kinetic 步骤 sudo apt span class t
  • 树莓派4B ubuntu20.04 安装ROS noetic和opencv记录

    文章目录 准备换源安装ROS一些遇到的坑连接wifi添加秘钥时出错 E could not get lock var lib apt list catkin make时出现错误 Could not find the required com
  • apt-get使用本地安装源进行安装及apt-get命令详解

    apt get使用本地安装源进行安装 我们都喜欢使用apt get xff0c 因为它实在是让我们大大的省心 但是 xff0c 有时候我们会为网速慢 xff0c 安装源不好而烦恼 xff0c 所以我们可能会将一些常用软件包的 deb文件保存
  • 引入MybatisPlus与实操

    文章目录 1 MybatisPlus概述2 快速入门2 1 步骤 3 配置日志 1 MybatisPlus概述 特色 特性 无侵入 xff1a 只做增强不做改变 xff0c 引入它不会对现有工程产生影响 xff0c 如丝般顺滑 损耗小 xf
  • ubuntu清理硬盘空间

    移除不再需要的软件包 此选项可以删除 安装某个软件包时 自动安装的依赖库和包 xff0c 这些自动安装的依赖包在系统中通常是无用的 xff0c 浪费磁盘空间 但是如果报出很多ros相关的包最好谨慎一点 xff0c 以免误删 span cla
  • E: 仓库 “http://ppa.launchpad.net/gviz-adm/graphviz-dev/ubuntu bionic Release” 没有 Release 文件。N: 无法安全地

    通过换源无法解决 xff1a 打开软件和更新 选择其他软件 xff0c 里边有一个网址与报错的网址一样 xff0c 取消选择状态 完美解决 xff01 xff01
  • 计网笔记 网络层(中)

    前面的话 这篇文章继上一篇 xff0c 是关于网络层的其他知识的梳理 目录 1 划分子网 2 使用子网时分组的转发 3 无分类域间路由选择CIDR xff08 构造超网 xff09 4 网际控制报文协议ICMP 划分子网 前面讲到的两级IP
  • C++与C语言的区别

    1 C 43 43 的创建历程 xff1a 20世纪70年代中期 xff0c Bjarne Stroustrup在剑桥大学计算机中心工作 他使用过Simula和ALGOL xff0c 接触过C 他对Simula的类体系感受颇深 xff0c
  • moment的startOf、endOf使用

    moment的startOf endOf使用 举例 xff1a 今天的日期 xff1a 2020 04 14 16 41 startOf语法 xff1a moment startOf String 通过将原始的 moment 设置为时单位的
  • 133道Java面试题及答案(面试必看)

    Java 面试随着时间的改变而改变 在过去的日子里 xff0c 当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试 xff0c 但是现在问题变得越来越高级 xff0c 面试官问的问题也更深入 在我初入职
  • JS的test()方法

    解析 解释 xff1a js的test 方法用于检测一个字符串是否匹配某个格式 语法 xff1a RegExpObject test string 返回值 xff1a 如果String中含有RegExpObject中匹配的字符返回true
  • 实时获取当前时间并展示在页面上

    简介 实时获取当前时间并展示在页面上 xff0c 是很多地方常用的 xff1b 在页面中做此展示以便查看时间 本文使用js通过一个小的demo实现效果 完整Code span class token operator lt span spa
  • Visual Studio Code提交代码提示“Make sure you configure your ‘user.name‘ and ‘user.email‘ in git.”

    使用VSCode编译器提交代码到gitlab xff0c 编译器提示 Make sure you configure your 39 user name 39 使用编译器VSCode提交代码到GitLab xff0c 提示 Make sur
  • React编译代码报错提示:React was passed “javascript:;“。

    React编译代码提示报错信息 xff1a React编译代码提示报错信息 xff1a Warning A future version of React will block javascript URLs as a security p
  • 如何添加Iconfont图标到项目及创建新项目?

    1 搜索图标 或者 选择自己上传图标 2 选择图标 xff0c 加入库 3 点击购物车图标 xff0c 如果已经创建项目直接选择点击确定 xff1b 如果没有创建项目点击 43 创建项目 4 输入新项目名称 xff0c 点击确定 5 确定后
  • antd icon 图标组件的使用

    antd提供的icon有限 xff0c 可以直接使用iconfont图标库的图标 1 安装图标组件包 npm install save 64 ant design icons 2 创建图标 import createFromIconfont
  • 字符串解析为指定格式

    将 张三 李四 王五 赵六 解析为 张三 李四 xff08 共4人 xff09 使用 xff1a let str 61 39 张三 李四 王五 赵六 39 empsDeal str 39 张三 李四 共4人 39 方法 xff1a cons
  • 清除redux数据(hooks写法)

    清除redux数据的场景 A页面初始化调用A接口 xff0c 希望在当前页面生效 xff0c 跳转页面不保存数据 xff0c 但redux中已经存有历史数据 xff0c 所以在页面销毁时清除redux数据 A页面请求A接口 useEffec
  • 跳转页面方法

    跳转页面 window location href 61 url 替换当前页面 window location replace url
  • 嵌入式面试总结

    毕业一年多了 xff0c 从事嵌入式开发工作不知不觉也一年多了 xff0c 题主主要从事单片机 xff08 STM32 xff09 应用开发工业类电子方向 xff0c 纯技术涉及到的内容主要是C语言 arm STM32驱动 FreeRTOS

随机推荐

  • 数据库ER图基础概念整理

    ER图分为实体 属性 关系三个核心部分 实体是长方形体现 xff0c 而属性则是椭圆形 xff0c 关系为菱形 ER图的实体 xff08 entity xff09 即数据模型中的数据对象 xff0c 例如人 学生 音乐都可以作为一个数据对象
  • 如何成为一个全能的机器人工程师

    大疆技术总监 xff1a 如何用六年成为一个全能的机器人工程师 机器人学的核心问题是做好和物理世界的交互 现在主流的机器人学分支里 xff0c 处理与物理世界的交互的学科分为三类 xff1a 传感器和处理算法 xff1b 多刚体系统动力学控
  • 任务调度算法

    可实现在单片机裸机下还能有很好的实时性 任务调度器 SCHEDULER TASK scheduler tasks 61 amp P loop 1000Hz 1000 0 0 amp P loop 500Hz 500 0 0 amp P lo
  • 阿里云云计算ACP学习(一)---弹性计算

    弹性计算 1 ECS的概念与定位 概念 xff1a 云服务器ECS xff08 Elastic Compute Service xff09 是一种可弹性伸缩的计算服务 xff0c 可以帮助降低IT成本 xff0c 提升运维效率 xff0c
  • 阿里云云计算ACP学习(二)---弹性存储

    弹性存储 1 阿里云盘古 盘古 飞天底层同一存储平台 盘古的优势 xff1a 盘古系统在一个核心基础层之上 xff0c 通过为不同应用场景而抽象的适配层设计 xff0c 提供了分布式块存储系统和分布式文件系统两种形态 xff0c 基于这一套
  • HDFS读写流程介绍,HDFS读数据和写数据的原理是什么?

    Client 客户端 对HDFS中的数据进行读写操作 xff0c 分别是Client从HDFS中查找数据 xff0c 即为Read 读 数据 Client从HDFS中存储数据 xff0c 即为Write 写 数据 下面我们对HDFS的读写流
  • VIM简单配置step by step

    0 更新vim 更新和安装vim xff0c 保证版本 gt 61 8 0即可 可按照如下命令安装 0 1 安装依赖 yum update y yum install epel release y yum install y git gcc
  • 使用setInterval遇到的陷阱

    setInterval的使用 span class token keyword const span interval span class token operator 61 span span class token function
  • vs本地调试dll文件

    遇到一些问题 xff0c 需要调试dll文件进行调试 xff0c 环境配置如下 打开dll工程 1 鼠标右键dll项目 xff0c 属性 gt 配置属性 gt 调试 gt 命令 在命令中填写使用dll的 exe文件的路经 2 将新生成的dl
  • 对抗样本简介

    一 什么是对抗样本 对抗样本是一类被恶意设计来攻击机器学习模型的样本 它们与真实样本的区别几乎无法用肉眼分辨 xff0c 但是却会导致模型进行错误的判断 对抗样本的存在会使得深度学习在安全敏感性领域的应用收到威胁 如下图所示 xff0c 通
  • QT——QWidget窗体设置背景颜色、背景图、及其注意点

    QWidget窗体设置背景颜色 背景图 及其注意点 前言一 使用调色板QPalette来设置图片二 使用样式表QSS三 使用画笔Qpainter在paintEvent事件中绘制图片 前言 QT设置背景图笔录 一 使用调色板QPalette来
  • Navicat 连接Mysql 8.0以上版本报错1251的详细解决方案(配效果图)

    从MySql5 7版本跳到了Mysql 8 0的版本 xff0c 安装的时候提示链接加密方式已经改变 xff0c 是选择5 xff1f 时代的方式还是新的方式 xff0c 当时 全部选择默认 xff0c 所以选择的新的 加密方式 xff0c
  • 前端入门篇(一)常用五大浏览器及浏览器内核

    一 常见浏览器内核介绍 浏览器是网页运行的平台 xff0c 常见的浏览器有 IE 火狐 xff08 Firefox xff09 谷歌 xff08 Chrome xff09 Safari和Opera等 xff0c 我们平时称为五大浏览器 xf
  • 从输入URL到页面展示这中间发生了什么

    文章目录 从输入URL到页面展示这中间发生了什么Chrome多进程浏览器架构补充1 xff1a 进程和线程 整体的流程1 浏览器接收到输入的URL后 xff0c 先解析URL浏览器发送请求前 xff0c 尝试缓存命中 2 建立URL请求DN
  • 自动化标注技术

    自 动 化 标 注 技 术 自动化标注技术
  • 解决hadoop无法访问8088和19888端口的问题

    50070端口可以访问 xff0c 但是8088和19888端口不可以访问 xff0c 关防火墙 xff0c 看配置文件都是没有问题 xff0c 但就是不能web访问 看下图我的19888和8088前面都是127 0 0 1 xff0c 着
  • PyQt5有关QtWebEngineWidgets的解决办法

    from PyQt5 import QtWebKitWidgets ImportError DLL load failed 找不到指定的程序 这是因为PyQt5在5 6版本以后改用 QtWebEngineWidgets xff0c 所以之前
  • 在NER任务中CRF层的作用(例子)

    这里不过多阐述NER任务是啥了 xff0c 具体来看看他的作用 xff0c 并且举了一个例子 xff0c 让大家理解更加深刻 上图说明模型的输出是每个标签的分数 例如 xff0c 对于w0 模型的输出为1 5 B Person 0 9 I
  • 深度神经网络(DNN)通俗理解

    首先要明白俩个函数 xff0c 特别重要的俩个函数 线性的关系函数 激活函数 xff08 顾名思义是激活用的把得到的Z放入函数中 xff0c 来重新得到结果 xff09 中间的线相当于线性关系函数中的w 神经元相当于一个激活函数 xff0c
  • 爬虫写一个 “搜索引擎”,炒鸡简单。

    写搜索引擎前 xff0c 我们需要简答了解一下flask 这个轻量级的web的框架 xff0c 如果没有这个模块 只需要 pip install flask 即可 然后我们需要用html写一个最初的 搜索框 xff0c 并且命名这个文件为s