爬虫第5课:POST请求

下面这段代码是一个简单的Python脚本,用于从Python之禅(一个Python中文技术博客)网站进行搜索查询,并输出搜索结果。以下是对这段代码的详细解释:

  1. 导入所需的库

    • urlopen 和 Request 是从 urllib.request 模块导入的,用于发送HTTP请求。
    • UserAgent 是从 fake_useragent 库导入的,用于生成随机的用户代理字符串,以模拟不同的浏览器。
    • quote 是从 urllib.parse 模块导入的,用于对URL中的特殊字符进行编码。
  2. 设置用户代理

    • 使用 UserAgent() 创建一个用户代理对象。
    • ua.chrome 获取一个模拟Chrome浏览器的用户代理字符串。
  3. 设置请求头

    • 创建一个字典 headers,其中包含一个 'User-Agent' 键,其值设置为模拟的Chrome浏览器的用户代理字符串。
  4. 获取用户输入

    • 使用 input 函数提示用户输入搜索内容,并将其存储在变量 key 中。
  5. 对搜索内容进行URL编码

    • 使用 quote 函数对 key 进行编码,以确保它可以安全地作为URL的一部分。
    • 将编码后的搜索内容存储在 f_data 中。
  6. 构建URL

    • 创建一个URL字符串,该字符串包含搜索的基础URL和编码后的搜索内容。
  7. 创建请求对象

    • 使用 Request 创建一个请求对象,该对象包含URL、请求头和编码后的搜索内容(作为POST数据)。
  8. 发送请求并获取响应

    • 使用 urlopen 函数发送请求,并将响应对象存储在 reopen 中。
  9. 读取并打印响应内容

    • 使用 read 方法读取响应的内容。
    • 使用 decode 方法将内容从字节串解码为字符串。
    • 打印解码后的内容。

注意:虽然代码中使用了 data=f_data.encode() 来发送POST请求,但通常搜索查询是通过GET请求发送的,其中查询参数附加到URL中。因此,这里可能是一个错误或特定于该网站的特定实现。如果这是标准的GET请求,那么你应该将查询参数添加到URL中,而不是使用 data 参数。

此外,这段代码没有处理任何可能的异常,例如网络错误或无效的URL。在实际应用中,你可能需要添加异常处理来确保代码的健壮性。

# coding:utf-8
# 时间:2024/3/16 18:20
# Pythonit教程网(blog.pythonit.cn)
# Python全栈视频课件获取:www.dqu.cc
# 加速高防cdn:woaiyundun.cn
from urllib.request import urlopen,Request
from fake_useragent import UserAgent
from urllib.parse import quote
ua = UserAgent()headers = {'User-Agent':ua.chrome
}key = input('请输入搜索的内容:')
f_data = quote(key)
url = f'https://blog.pythonit.cn/index.php/search/{quote(key)}'
req = Request(url,headers=headers,data=f_data.encode())
reopen = urlopen(req)
print(reopen.read().decode())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/779613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

速通汇编(二)汇编mov、addsub指令

一,mov指令 mov指令的全称是move,从字面上去理解,作用是移动(比较确切的说是复制)数据,mov指令可以有以下几种形式 无论哪种形式,都是把右边的值移动到左边 mov 寄存器,数据&#…

低代码助力企业打造业务管理云平台

随着数字化转型的不断深入,越来越多的企业开始寻求通过构建业务管理云平台来提升运营效率、降低成本并增强市场竞争力。在这个过程中,低代码平台正逐渐成为一种革命性的技术工具,以其高效、灵活的特点助力企业快速搭建和管理云平台。 低代码平…

AI 创新领跑者,KIP Protocol 如何理解 Decentralized AI

随着 OpenAI 的 Sora 推动 AI 赛道的热度攀升,AI 领域再次成为科技和投资界的焦点。KIP Protocol 是面向 AI 模型制作者、App 开发者和数据所有者构建的去中心化 Web3 协议层,使数据可在 Web3 中安全地进行交易和货币化。KIP Protocol 由 Animoca Ventur…

Jenkins实现CICD

Jenkins实现CICD JenkinsCI简介环境安装新建任务源码管理构建配置发送邮件配置自动化项目定时构建 JenkinsCD简介配置ssh保证其可以免登录接下来配置github的webhook正式实现自动化打包master主分支的代码将前端三剑客代码文件发送到网站服务器对应的tomcat Jenkins面试题 Jenk…

个人简历主页搭建系列-04:网站初搭建

准备工作差不多了,该开始搭建网站了! 这次我们先把网站搭建部署起来,关于后续主题内容等更换留到后续。 创建源码文件夹 首先通过 hexo 创建本地源码文件夹。因为最终部署的 github 仓库格式为 websiteName.github.io(websiteN…

Gartner发布新兴技术指南:生成式人工智能和深度伪造对身份验证的影响

使用生成式人工智能(GenAI)技术生成的 Deepfakes(深度伪造) 对身份验证的完整性构成了根本威胁。身份验证产品领导者必须了解这一新兴威胁,并采取积极主动的方法来区分和保护其解决方案产品。 主要发现 活体检测技术对于防御深度伪造以及在身…

【每日力扣】332. 重新安排行程与51. N 皇后

🔥 个人主页: 黑洞晓威 😀你不必等到非常厉害,才敢开始,你需要开始,才会变的非常厉害。 332. 重新安排行程 给你一份航线列表 tickets ,其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你…

代码随想录算法训练营 DAY 24 | 回溯理论基础 77.组合 + 剪枝优化

回溯理论 回溯法就是递归函数,纯暴力搜索 解决的问题 组合(无顺序) 1 2 3 4 给出大小为2的所有组合 切割字符串 子集问题 1 2 3 4,子集有1 2 3 4,12,13,14,…123 124… 排列(有顺序) 棋盘…

wpf 自定义命令

自定义命令 MyCommand.cs public class MyCommand : ICommand {private readonly Action<Object> execAction;private readonly Func<Object,bool> changedFunc;public event EventHandler? CanExecuteChanged;public MyCommand(Action<object> execAction…

尾盘拉升超8个点,速腾聚创交出来一份怎样的超预期答卷?

“如果说2024年是智驾加速渗透&#xff0c;L3级智能驾驶陆续落地的一年&#xff0c;那么激光雷达将是这股潮流中不可缺失的那一份。” 2024年开年&#xff0c;速腾聚创以相当“闪亮的姿态”成为“港股2024年首只IPO上市成功”的企业。 然而&#xff0c;其上市之后的市场表现却…

【MySQL】DQL-基础查询-语句&演示(查询多个字段 / 所有字段/并设置别名/去重)

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

天梯练习题集

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 目录 &#x1f449;&#x1f3fb;L1-002 打印沙漏&#x1f449;&#x1f3fb;L1-011 A-B &#x1f449;&#x1f3fb;L1-002 打印沙漏 mycode: #…

嵌入式linux学习之交叉编译器安装

交叉编译器介绍 ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译&#xff0c;编译就需要编译器&#xff0c;在 Liux 进行 C 语言开发里面使用 GCC 编译器进行代码编译&#xff0c;但是 Ubuntu 自带的 gcc 编译器是针对 X86 架构的&#xff01;而我们现在要编…

按要求输出序列

问题描述 : 明明的爸爸是一位著名的数学家。他在明明很小的时候就发现明明有过人的数学天赋&#xff0c;因此有意培养他对数学的兴趣。一次&#xff0c;明明的爸爸为了培养明明对数字的敏感&#xff0c;和明明玩起了一个数字游戏&#xff0c;这个游戏的名称叫“按要求输出序列…

通过keil MDK生成静态库以减少编译时间

当我们的程序复杂度提高,代码量增大,每次编译都会花费更多的时间,虽然相比较Linux动则好几个小时的编译时间,单片机编译的时间已经算很短了,但是一个200多KB的程序编译也得需要好几分钟。如果将一些成熟固定,几乎不会再去修改的程序编译成静态库,那么可以减少一部分编译…

Facebook多个广告账户被封禁的原因及解决方法

在昨天的文章中&#xff0c;我们为大家介绍了Facebook是什么&#xff0c;今天我们接着聊一聊如何解决在Facebook投放多个广告时&#xff0c;广告账户被封禁的问题。想必这个问题困扰着包括社交媒体营销人员、内容创作者、跨境电商从业者在内的许多人。不过别担心&#xff0c;有…

【一竞技CS2】Falcons战队官宣签下传奇老将dupreeh

1、最近Falcons战队正式官宣签下传奇老将dupreeh&#xff0c;这位31岁的选手将填补BOROS被下放后留下的空缺。加入Falcons后&#xff0c;dupreeh将与老队友Magisk、zonic重聚。dupreeh和他们在Astralis曾一起取得过显赫的成绩&#xff1b;在Vitality时期&#xff0c;dupreeh和老…

智慧公厕,为智慧城市建设注入了新的活力

随着智慧城市的快速发展&#xff0c;公共厕所不再是简单的功能设施&#xff0c;而是成为了提升城市形象、改善民生服务的重要一环。智慧公厕作为新形态的公共厕所&#xff0c;通过精准监测公厕内部的人体活动状态、人体存在状态、空气质量情况、环境变化情况、设施设备运行状态…

CentOS8 安装nvidia-container gpu

Cent OS Docker运行的时候could not select device driver ““ with capabilities: [[gpu]] 原创 解决方法 &#xff1a;nvidia-container-runtime 安装失败 解决方法 &#xff1a; systemctl restart docker yum install nvidia-container-runtime docker start your_contai…

利用lidar生成深度图

前言 目前&#xff0c;深度图像的获取方法有&#xff1a;激光雷达深度成像法、计算机立体视觉成像、坐标测量机法、莫尔条纹法、结构光法等。针对深度图像的研究重点主要集中在以下几个方面&#xff1a;深度图像的分割技术&#xff0c;深度图像的边缘检测技术&#xff0c;基于…