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

Python爬虫03_Requests破解百度翻译

爬取百度翻译页面信息
以POST方法发送JSON数据,爬取响应信息,并且需要对响应信息对象类型进行区分。

import requests
import json#1.指定url
post_url = 'https://fanyi.baidu.com/sug'#2.进行UA封装
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0'
}#3.post请求参数处理(同get请求一致)
word = input('enter a word:')
data = {'kw':word
}#4.请求发送
response = requests.post(url=post_url,data=data,headers=headers)#5.获取响应数据:json()方法返回的是obj(如果确认响应数据是json类型的,才可以使用json()方法
dic_obj = response.json()#6.持久性存储,可自行设置存储路径及文件名
fileName = word+'.json'
fp = open(fileName,'w',encoding='utf-8')
json.dump(dic_obj,fp=fp,ensure_ascii=False)print('over!!!')

响应对象类型
服务器返回的响应数据,本质上是「一串字节流」,但按用途和格式可以分成几大类:
1. 文本类(人类可读)

类型MIME 类型(Content-Type例子用途
HTMLtext/html<html>...网页结构
纯文本text/plainHello World简单文本
JSONapplication/json{"name":"Tom"}API 数据交换
XMLapplication/xml<user><name>Tom</name></user>老派 API、配置文件
CSVtext/csvname,age\nTom,18表格数据
CSS/JStext/css, application/javascript.btn{color:red}样式和脚本

2. 二进制类(不可直接读,需解析)

类型MIME 类型例子用途
图片image/jpeg, image/png, image/webp二进制图片流展示图片
音频/视频audio/mp3, video/mp4二进制媒体流播放媒体
文件下载application/octet-streamfile.zip任意文件下载
字体文件font/woff2二进制字体网页字体
Protobufapplication/x-protobuf二进制序列化数据高效接口通信

3. 压缩或编码过的数据
Gzip/Deflate/Brotli:响应头 Content-Encoding: gzip,数据被压缩,需先解压。
分块传输:响应头 Transfer-Encoding: chunked,数据被分块发送,需拼接。

4. 空数据
状态码 204 (No Content):成功但无返回体,比如某些 DELETE 请求。

如何判断类型?
看响应头里的两个关键字段:

Content-Type: application/json; charset=utf-8
Content-Encoding: gzip

Content-Type 告诉你「数据格式」。
Content-Encoding 告诉你「是否压缩」。

响应数据可以是「任何你能用浏览器打开的东西」——从网页、JSON、图片、视频,到压缩包、字体、音频流,甚至空响应。

http://www.dtcms.com/a/305046.html

相关文章:

  • 7、如何管理昵称重复?
  • claudia for claude code
  • ITIL 4 高速IT:解耦架构——构建快速迭代的技术基座
  • 电商修图,尺寸修改适配各大电商平台
  • Elasticsearch 从入门到精通:术语、索引、分片、读写流程与面试高频题一文搞懂
  • 青少年软件编程图形化Scratch等级考试试卷(四级)2025年6月
  • SZU大学物理实验报告|电位差计
  • 赋能低空未来|迪捷软件亮相2025国际低空经济博览会
  • 【tips】小程序css ➕号样式
  • Three.js 性能优化全面指南:从几何体合并到懒加载资源
  • OpenLayers 综合案例-台风风场模拟
  • MIAOYUN参编信通院《大模型API服务性能测试标准》
  • 营销活动效果分析与策略优化
  • 【JVM】常见的 Java 垃圾回收算法以及常见的垃圾回收器介绍及选型
  • ARM7微处理器的核心优势
  • Docker入门基础使用
  • 【vue(2)插槽】
  • ZKmall开源商城中台架构实践:API 网关与服务治理如何撑起电商技术骨架
  • vue3实战九、vue3+vue-cropper实现头像修改
  • 【Linux】批量处理多个用户的 sudo 权限问题
  • 【STM32开发】-基础开发笔记(STM32F103,HAL库开发)
  • 【ComfyUI学习笔记04】案例学习:局部重绘 - 上
  • 墨者:XPath注入漏洞实战
  • 第二十五节 MATLAB矩阵的加法和减法、除法(左,右)矩阵
  • Arduino声控RGB矩阵音乐节奏灯DIY全攻略
  • 解密数据结构之二叉树
  • Android11平台下rk3568的ATGM332D定位模块适配
  • 全志T507平台GPIO 控制(二)
  • OpenCV图像算数运算可莉版
  • bash命令创建新conda环境