Python10行代码实现模拟百度搜索

2023-11-14

「作者主页」:士别三日wyx


        1000块钱做个百度?能提出这种要求的客户实乃乙方克星、民族之光、科创永动机、西虹市一大杰出青年,诺奖永远得不到的人才。

        但作为一个硬核的程序员,没有什么功能是我们实现不了的,如果有,那就是钱没到位。因此,我们要用魔法打败魔法,10行代码给他写一个百度搜索。

1. 获取百度搜索接口

在这里插入图片描述
        地址栏中有很多参数,但实际有用的参数只有 wd ,只需要保留这一个参数即可,其余删掉。

url = 'https://www.baidu.com/s?wd=士别三日wyx'

2. 指定搜索内容

        搜索内容肯定不能写死,需要由用户「输入」

kw = input('百度一下:')
url = 'https://www.baidu.com/s?wd=' + kw

3. UA伪装

        利用百度的接口发送「请求」,获取响应内容。

        大部分网站都会对用户的请求进行「过滤」,以防止恶意攻击行为,比如查看是否是浏览器发出的请求

        「UA伪装」是指在HTTP请求头中添加 User-agent ,伪装成浏览器的请求,网站检查请求头时,发现有UA请求头,就会认为是浏览器的请求,从而放行。

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0',}
response = requests.get(url=url, headers=headers)

4. 将响应内容写入文件

        响应的内容实际上就是构成页面的 HTML 代码,将响应内容写入HTML文件,就获得了百度搜索的响应页面

fileName = 'a.html'
with open(fileName, 'w', encoding='utf-8') as fp:
    fp.write(response.text)

5. 使用浏览器打开页面

        页面生成以后肯定不能再手动打开,那也太low了,使用默认「浏览器」自动打开生成的页面

webbrowser.open(fileName)

源码如下

import webbrowser
import requests
kw = input('百度一下:')
url = 'https://www.baidu.com/s?wd=' + kw
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0',}
response = requests.get(url=url, headers=headers)
fileName = 'a.html'
with open(fileName, 'w', encoding='utf-8') as fp:
    fp.write(response.text)
webbrowser.open(fileName)

输入想要百度的内容,按下回车
在这里插入图片描述
即可自动使用默认浏览器打开搜索结果的页面

在这里插入图片描述

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

Python10行代码实现模拟百度搜索 的相关文章

  • Pandas - 按每个可能的键组合聚合

    我有一个 DataFrame Pandas 我想通过 A B C 和 D 列的组合尽可能按数据进行分组 假设它具有以下形式 A B C D E F G 0 Y X Y Z 1 2 7 1 Y X Y Z 3 4 8 2 X Y U V 1
  • 删除 python vaex 中的重复行

    我正在使用 python vaex 但我不知道如何删除数据框中的重复行 例如 在 pandas 中存在以下方法drop duplicates vaex中有没有类似的功能 似乎还没有 但我们应该在某个时候期待这个功能 其间 有vaex创始人的
  • 使用 python 中的 java 库

    我有一个 python 应用程序和 java 应用程序 python 应用程序为 java 应用程序生成输入并在命令行上调用它 我确信一定有一个更优雅的解决方案 就像使用 JNI 从 Java 调用 C 代码一样 有什么指点吗 仅供参考 我
  • django 管理站点导航侧边栏搞砸了

    我最近在我的项目中添加了一个包并做了一个pip freeze gt requirements txt然后 然后我做了pip install r requirements txt到我的本地 它添加了一个侧边栏 I did a pip inst
  • 添加反斜杠而不转义[重复]

    这个问题在这里已经有答案了 我需要逃离 字符串中的 字符 问题是每当我string string replace 结果是 添加额外的反斜杠来转义原始反斜杠 如何删除这个多余的反斜杠 结果 仅显示 实际上字符串是 gt gt gt str g
  • Ttk Treeview:跟踪键盘选择

    这是一个带有 ttk 树视图的 Tk 小部件 当用户单击该行时 会执行某些功能 此处仅打印项目文本 我需要的是以下内容 最初的重点是文本输入 当用户按下 Tab 键时 焦点应该转到第一行 并且应该执行绑定到 Click 事件的函数 当用户使
  • Python ttk.combobox 强制发布/打开

    我正在尝试扩展 ttk 组合框类以允许自动建议 我到目前为止的代码运行良好 但我想让它在输入一些文本后显示下拉列表 而不从小部件的输入部分移除焦点 我正在努力解决的部分是找到一种强制下拉的方法 在 python 文档中我找不到任何提及这一点
  • 使用 string.whitespace 删除 Python 中的空格

    Python 的 string whitespace 很棒 gt gt gt string whitespace t n x0b x0c r 如何在不手动输入 t n 等正则表达式的情况下将其与字符串一起使用 例如 它应该能够转动 请不要伤
  • 在 Qt Creator 中相互公开 QML 组件

    我正在使用 Qt Quick 和 PySide2 开发仪表板应用程序 但在 Qt Creator 的设计模式中公开我的 QML 组件时遇到问题 我的文件夹结构如下所示 myapp mycomponents component1 qml co
  • 为 pandas 数据框中的两列创建邻接矩阵

    我有一个以下形式的数据框 index Name A Name B 0 Adam Ben 1 Chris David 2 Adam Chris 3 Ben Chris 我想获得邻接矩阵Name A and Name B ie Adam Ben
  • Django:通过外键将两个表连接到第三个表?

    我有三个型号 class A Model class B Model id IntegerField a ForeignKey A class C Model id IntegerField a ForeignKey A 我想要得到 B i
  • 鉴于我的代码是开源的并且我在服务器上运行,并且我接受近乎原始的代码,那么对我来说最糟糕的情况是什么?

    我正在研究几个案例 在这些案例中 接受近乎原始的代码会容易得多 所以 如果你不能使用 lambda 你能对表达式做的最糟糕的事情是什么 以及如何做 如果不能使用 import 那么对执行的代码最糟糕的情况是什么 如何使用 不能使用 X 扫描
  • 如何将多索引数据帧与单个索引数据帧连接?

    df1 的单个索引与 df2 的多索引的子级别匹配 两者都有相同的列 我想将 df1 的所有行和列复制到 df2 它类似于这个线程 将单索引 DataFrame 复制到多索引 DataFrame https stackoverflow co
  • 将 numpy 记录数组转换为字典列表的有效方法

    如何转换下面的 numpy 记录数组 recs Bill 31 260 0 Fred 15 145 0 r rec fromrecords recs names name age weight formats S30 i2 f4 到字典列表
  • 有没有办法只从 python 列表中输出数字?

    简单的问题 list 1 asdada 1 123131 131 blaa adaraerada 0 000001 34 12451235265 stackoverflow is awesome 我想创建一个list 2这样它只包含数字 l
  • Python 中的数据可用性图表

    我想知道Python是否有一些东西可以绘制具有多个变量的时间序列的数据可用性 下面显示了一个示例 取自Visavail js 时间数据可用性图表 https github com flrs visavail 1 description 以下
  • 如何在Python中从stdin中逐行读取

    每个人都知道如何在 C 中计算 STDIN 中的字符 但是 当我尝试在 python3 中执行此操作时 我发现这是一个难题 计数器 py import sys chrCounter 0 for line in sys stdin readl
  • 在Python中:检查文件修改时间是否早于特定日期时间

    我用 C 编写了以下代码来检查文件是否已过期 DateTime lastTimeModified file getLastTimeModified if lastTimeModified HasValue File does not exi
  • 仅在满足条件时添加到字典

    我在用urllib urlencode构建 Web POST 参数 但是有一些值我只想在除None为他们而存在 apple green orange orange params urllib urlencode apple apple or
  • Python正则表达式:如何用不同的值替换出现的每个实例?

    假设我有这个字符串 s blah blah blah 使用Python正则表达式 如何用不同的值替换 blah 的每个实例 例如 我有一个值列表v 1 2 3 你可以使用re sub打回来 http docs python org libr

随机推荐

  • [Unity2D]Tilemap Collider2D只给部分地图瓦片加上Collider的方法

    Unity2D Tilemap Collider2D 给Tilemap中的瓦片网格加上碰撞器 绿色的边框就是碰撞器 需要注意的是 如果给Tilpmap加碰撞器 其整个Tilpmap上的瓦片都会加上碰撞器 在一个Tilpmap上 如果想让部分
  • mongodb监控工具mongostat

    mongostat是mongodb自带的状态检测工具 在命令行下使用 会间隔固定时间获取mongodb的当前运行状态 并输出 常用命令格式 mongostat host 192 168 1 100 27017 uroot p123456 a
  • CreateRemoteThread的使用(转载)

    先解释一下远程进程 其实就是要植入你的代码的进程 相对于你的工作进程 如果叫本地进程的话 它就叫远程进程 可理解为宿主 首先介绍一下我们的主要工具CreateRemoteThread 这里先将函数原型简单介绍以下 CreateRemoteT
  • Android 特许权限白名单

    1 前言 在项目开发中 需求 app中有恢复出厂设置的功能 分解这个需求的时候 第一反应肯定不是第三方app 恢复出厂设置肯定需要有系统权限 属于系统级的app 然后在看手机系统中的功能 恢复出厂设置功能属于设置模块 找到源码阅读 当然是能
  • 2017-7-17 2-2 不使用&&和

    include
  • tomcat下载和配置(简单,详细)

    下载 官网 http tomcat apache org 找到需要的版本 点击download 在download页面 选择需要下载的 分为压缩版和安装版 我比较推荐压缩版 省事解压缩就好 配置 首先 tomcat7 0以上版本不需要配置环
  • 提高map[key]=value的效率

    当关乎效率时应该在map operator 和map insert之间仔细选择 我们知道 这个表达式 m k v 检查键k是否已经在map里 如果不 就添加上 以v作为它的对应值 如果k已经在map里 它的关联值被更新成v 举例一 考虑插入
  • 搭建第一个Dapp应用(4)——搭建SmartDev-Scaffold——2021.5.3

    搭建第一个Dapp应用 4 搭建SmartDev Scaffold 一丶环境配置 Java gt JDK 1 8 Solidity 0 4 25 Git 下载安装包需要使用Git Gradle 大于6 小于7 使用gradle7会报错 二丶
  • JavaEE规范与系统结构

    JavaEE规范 JavaEE规范是J2EE规范的新名称 早期被称为J2EE规范 其全称是Java 2 Platform Enterprise Edition 它是由SUN公司领导 各厂家共同制定并得到广泛认可的工业标准 JCP组织成员 之
  • Jenkins之定时构建

    1 操作环境 1 Jenkins Jenkins 2 75 2 定时构建 1 定时构建语法 第一个 表示分钟 取值0 59 第二个 表示小时 取值0 23 第三个 表示一个月的第几天 取值1 31 第四个 表示第几月 取值1 12 第五个
  • 由java:local_policy.jar和US_export_policy.jar引发的“血案”

    起因 今天项目上线 上线后监测日志 发现由异常 开始查找问题 进而引发了 血案 线上日志报错如下 Illegal key size 画外音 看到线上项目出现问题心里慌的一批 赶紧扒拉出代码 一行一行对着报错日志查看 最后定位到 AES ae
  • 制作SD卡启动盘(编译烧写u-boot)

    一 SD启动盘制作 将我们的sdfuse q文件夹拷贝到虚拟机Ubuntu的共享目录下 sudo cp samba NFS FTP sdfuse q a 将文件夹复制到 home chen 目录下 cd sdfuse q 进入sdfuse
  • 西门子PLC s7-1200学习之路

    1 Introduction 最近因为一个项目需要使用西门子PLC 买了一个入门级的PLC s7 1200 并完成了一个PLC和PC通过TCP进行通信的小程序 为了防止活干完了 内容就全忘了 所以用一个笔记进行梳理和总结 入门一种语言 需要
  • 专访蒋宇捷:技术管理者应具备哪些能力?(转载)

    摘要 近期 本站记者采访了CSDN社区活跃用户 百度技术经理蒋宇捷 他认为一个合格的技术管理者应该具备深度认知产品 冷静决策 以及良好的沟通能力 还要秉持着技术源于一线 永远不能脱离一线的观念 蒋宇捷 西安交通大学硕士 现任百度技术经理 曾
  • [系统安全] 三十九.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法

    您可能之前看到过我写的类似文章 为什么还要重复撰写呢 只是想更好地帮助初学者了解病毒逆向分析和系统安全 更加成体系且不破坏之前的系列 因此 我重新开设了这个专栏 准备系统整理和深入学习系统安全 逆向分析和恶意代码检测 系统安全 系列文章会更
  • 水杯测试用例小记

    水杯测试用例
  • python编写数学公式-Python引入数学函数计算

    Python引入数学函数计算 在利用Python对Abaqus进行相关编程时经常需要用到数学函数 比如三角函数等 在使用这些函数之前需要先引入数学模块 Import math 之后利用时还需要利用层级关系 比如math pi表示 一个示例如
  • go: no such tool “compile“(一次糟糕体验)

    这是一次离谱问题和胡搞一通莫名解决的记录 背景 win11系统下 原有的go1 18更新到go1 19后出现了莫名的go no sucn tool compile 的情况 当时检查go env 如下 PS D Desktop gt go e
  • pycharm使用wsl、SSH

    pycharm wsl 修改apt get源 安装miniconda 配置pycharm SSH Using the Python remote debug server configuration wsl windows sub linu
  • Python10行代码实现模拟百度搜索

    作者主页 士别三日wyx Python模拟百度搜索 1 获取百度搜索接口 2 指定搜索内容 3 UA伪装 4 将响应内容写入文件 5 使用浏览器打开页面 源码如下 1000块钱做个百度 能提出这种要求的客户实乃乙方克星 民族之光 科创永动机