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

相关推荐
Dxy12393102164 小时前
python如何通过链接下载保存视频
python·spring·音视频
东风西巷4 小时前
K-Lite Mega/FULL Codec Pack(视频解码器)
前端·电脑·音视频·软件需求
Terio_my4 小时前
Java bean 数据校验
java·开发语言·python
Tony Bai4 小时前
【Go开发者的数据库设计之道】07 诊断篇:SQL 性能诊断与问题排查
开发语言·数据库·后端·sql·golang
超级大只老咪5 小时前
何为“类”?(Java基础语法)
java·开发语言·前端
我笑了OvO5 小时前
C++类和对象(1)
java·开发语言·c++·类和对象
无咎.lsy5 小时前
裸K初级篇 - (一)蜡烛突破信号
python
可触的未来,发芽的智生7 小时前
新奇特:神经网络的集团作战思维,权重共享层的智慧
人工智能·python·神经网络·算法·架构
你的人类朋友7 小时前
快速搭建redis环境并使用redis客户端进行连接测试
前端·redis·后端
渡我白衣7 小时前
C++ 异常处理全解析:从语法到设计哲学
开发语言·c++·面试