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、图片、视频,到压缩包、字体、音频流,甚至空响应。

相关推荐
Lank_M1 分钟前
超分分块为什么按后端分:160与96的取舍
前端
鹤卿1233 分钟前
「iOS」GCD
开发语言·ios·objective-c
我是小白呀4 分钟前
编排还是事件协作?用 AcmeFlow 讲清企业 Workflow 的控制权
java·开发语言
流星。。方6 分钟前
企业官网前端组件怎么拆?从落地页到内容页的分层思路
前端
ACP广源盛139246256738 分钟前
接口适配方案选型|GSV6125@ACP HDMI2.0 转 Type‑C/DP1.4 桥接芯片工程评估
大数据·c语言·开发语言·硬件架构·硬件工程·国产芯片
deli00712 分钟前
豹纹和斑马纹是怎么长出来的:调两个参数,花纹自己浮现
前端
进击的明明15 分钟前
TypeScript速通笔记(上)
前端·面试·typescript
deli00716 分钟前
萤火虫为什么会一起闪:调一个耦合系数,整片林子自己同步
前端
柒和远方19 分钟前
DocResearch 项目面试:把每个模块讲明白,而不是背术语
python·llm·agent
信誓旦旦的程序猿21 分钟前
【Python 量化取数指南 #13】Python 把行情落库:sqlite 一键存,回测随用随取
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据api