Python爬虫03_Requests破解百度翻译

爬取百度翻译页面信息

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

python 复制代码
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 例子 用途
HTML text/html <html>... 网页结构
纯文本 text/plain Hello World 简单文本
JSON application/json {"name":"Tom"} API 数据交换
XML application/xml <user><name>Tom</name></user> 老派 API、配置文件
CSV text/csv name,age\nTom,18 表格数据
CSS/JS text/css, application/javascript .btn{color:red} 样式和脚本

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

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

3. 压缩或编码过的数据

Gzip/Deflate/Brotli:响应头 Content-Encoding: gzip,数据被压缩,需先解压。

分块传输:响应头 Transfer-Encoding: chunked,数据被分块发送,需拼接。

4. 空数据

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

如何判断类型?

看响应头里的两个关键字段:

python 复制代码
Content-Type: application/json; charset=utf-8
Content-Encoding: gzip

Content-Type 告诉你「数据格式」。

Content-Encoding 告诉你「是否压缩」。

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

相关推荐
wuyk5551 小时前
104.C 语言字节对齐:从底层原理到工程实践的完整指南
c语言·开发语言·stm32·单片机·嵌入式硬件
君顾17 小时前
智慧零售实战指南:从技术架构到落地方案全解析
java·开发语言·零售
南棱笑笑生8 小时前
20260904实测给飞凌OK3576-C开发板刷入Rockchip原厂的IMG固件【使用飞凌的DTS】切换串口波特率为1.5Mbps
c语言·开发语言·rockchip
问天_观心8 小时前
大模型微调学习(二)
人工智能·python·深度学习·学习·语言模型·transformer
洋洋不叫杨杨8 小时前
揭秘当下知名的SEO优化渠道,你知道几个?
大数据·python
阿童木写作8 小时前
跨境图片翻译工具推荐:批量处理视频字幕与智能抠图
python·音视频
梦曦i8 小时前
@meng-xi/create-uni-app vs unibest:轻量脚手架与重型框架的定位之争
前端·uni-app
平头哥技术团队8 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
乌萨奇也要立志学C++8 小时前
【洛谷】kmp算法
开发语言·算法
梦想的颜色8 小时前
OCR 识别原理与 Python 识图全实战:从文字提取到图像内容理解
python·计算机视觉·ocr·图像识别·python 识图