当前位置: 首页 > news >正文

urllib_post请求_百度翻译

打开百度翻译,并打开控制台,输入spider,然后在网络中找到对应的接口,可以看出,该url是post请求

在此案例中找到的接口为sug,依据为:

可以看到,传递的数据为kw : XXX,

所以在代码中,data数据需要以“kw”为键进行构造,如:

data = {"kw" : "spider"
}

然后请求对象的定制还需要用到url,headers(请求头),如下:

url='https://fanyi.baidu.com/sug'headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0"
}

因为是post请求,data还需要进行编码,如下:

data = urllib.parse.urlencode(data).encode("utf-8")

然后就是请求对象的定制,post请求,除了url,headers外,还要指明data,即请求数据

request = urllib.request.Request(url=url,data=data,headers=headers)

发起请求,得到想要内容

reponse = urllib.request.urlopen(request)

获取页面源码

content = reponse.read().decode("utf-8")

如果直接对内容打印,会发现有些内容看不懂:

可以看到这个内容是json格式的,使用json.loads(),将其转成python对象。json.loads() 函数用于将一个JSON格式的字符串转换为相应的Python对象。loads 是 "load string" 的缩写。

obj = json.loads(content)
print(obj)

打印结果:

完整代码:

import urllib.request
import urllib.parse
import jsonurl='https://fanyi.baidu.com/sug'headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0"
}data = {"kw" : "spider"
}data = urllib.parse.urlencode(data).encode("utf-8")request = urllib.request.Request(url=url,data=data,headers=headers)reponse = urllib.request.urlopen(request)
content = reponse.read().decode("utf-8")
obj = json.loads(content)
print(obj)

相关文章:

  • 【区块链】fisco节点运维 更新ing
  • PyTorch中的形状变换术:reshape、view与permute的区别与联系
  • Docker run 语句用法详解
  • 【传知代码】Modnet 人像抠图-论文复现
  • 【博主推荐】HTML5实现520表白、情人节表白模板源码
  • 【数据结构】哈夫曼树和哈夫曼编码
  • 全网最全爬取-b站爬取弹幕+评论之js逆向与xml降本增效
  • lua函数执行和虚拟机指令
  • UWB论文:Introduction to Impulse Radio UWB Seamless Access Systems(2):脉冲;超宽带;测距;定位
  • Flutter 中的 CupertinoPicker 小部件:全面指南
  • 【MySQL精通之路】SQL优化(1)-查询优化(11)-多范围查询优化
  • 开源RAG,本地mac启动 dify源码服务
  • 2024年第十七届“认证杯”数学中国数学建模网络挑战赛D题思路(第二阶段)
  • 解锁Nginx跨域谜题:3步打造安全高效的CORS策略
  • 【Centos7+JDK1.8】Jenkins安装手册
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 5、React组件事件详解
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • Linux Process Manage
  • spark本地环境的搭建到运行第一个spark程序
  • Travix是如何部署应用程序到Kubernetes上的
  • 电商搜索引擎的架构设计和性能优化
  • 简单数学运算程序(不定期更新)
  • 我的面试准备过程--容器(更新中)
  • 我这样减少了26.5M Java内存!
  • 学习笔记TF060:图像语音结合,看图说话
  • #、%和$符号在OGNL表达式中经常出现
  • #DBA杂记1
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C语言)球球大作战
  • (k8s)kubernetes 部署Promehteus学习之路
  • (pojstep1.1.2)2654(直叙式模拟)
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (三)docker:Dockerfile构建容器运行jar包
  • (生成器)yield与(迭代器)generator
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (十三)Flask之特殊装饰器详解
  • (转)关于pipe()的详细解析
  • (转载)深入super,看Python如何解决钻石继承难题
  • .Net Core与存储过程(一)
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • @Query中countQuery的介绍
  • @RestControllerAdvice异常统一处理类失效原因
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • [.net]官方水晶报表的使用以演示下载