Python 爬取百度翻译知识解析
首先找到接口,然后通过接口进行访问获取到需要的数据,其中要注意以下几点:
- 要用英文输入法寻找接口文件sug,其他接口链接会直接显示一下信息
{"errno":997,"errmsg":"\u672a\u77e5\u9519\u8bef","query":"dog","from":"zh","to":"en","error":997}
- 在sug中获取的接口返回的内容用response.content.decode(‘utf-8’)无法解决编码问题
{"errno":0,"data":[{"k":"dog","v":"n. \u72d7; \u8e69\u811a\u8d27; \u4e11\u5973\u4eba; \u5351\u9119\u5c0f\u4eba v. \u56f0\u6270; \u8ddf\u8e2a"},{"k":"DOG","v":"abbr. Data Output Gate \u6570\u636e\u8f93\u51fa\u95e8"},{"k":"doge","v":"n. \u5171\u548c\u56fd\u603b\u7763"},{"k":"dogm","v":"abbr. dogmatic \u6559\u6761\u7684; \u72ec\u65ad\u7684; dogmatism \u6559\u6761\u4e3b\u4e49; dogmatist"},{"k":"Dogo","v":"[\u5730\u540d] [\u9a6c\u91cc\u3001\u5c3c\u65e5\u5c14\u3001\u4e4d\u5f97] \u591a\u6208; [\u5730\u540d] [\u97e9\u56fd] \u9053\u9ad8"}]}
实现流程
首先去找接口按发F12查看请求包,响应包
注:要用英文输入法才会显示sug文件,用其他接口会出现上面第一点"errno":997信息。
代码实现
import requests
url = 'https://fanyi.baidu.com/sug'
kw = input('要翻译的内容:')
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
data = {
'kw': 'dog'
}
response=requests.post(url,data=data,headers=headers)
# 编码设置
html = response.json()
print(html['data'][0]['v'])
.json()
print(html['data'][0]['v'])