【Python爬虫】:破解百度翻译结果[Python基础]

python

我们打开百度翻译,和chrome浏览器当中开发者工具,点击XHR查看Ajax请求。(我们通过观察得到“百度翻译”这个界面,每当我们输入一个字母,就会得到这个字母所对应翻译的结果,正好符合ajax请求的要求)。

Ajax请求:仅仅会对界面当中的某一部分进行刷新的网页,则使用了Ajax请求技术。

然后我在百度翻译当中输入"dog",并打开我红色箭头已经标注好的其中有个名为“sug”的数据包,如下图所示:

 从中发现我们每输入一个字母,就会有一个数据包。从General当中分析可得到这是一个post请求,因此我们在爬虫的时候需要发起post请求来完成。

同时我们从from data出可以观察得到,我们发起的request的data为:kw:dog。

我们再打开response,查看返回数据的结果是什么:

 很显然,这是一个json字符串,我们直接使用json工具将得到响应数据保存为为json对象。

最后我们使用UA伪装,伪装成chrom浏览器发起爬虫,得到翻译结果,在代码当中我们也使用“dog”作为请求的data。完整代码如下:

import requests

post_url="https://fanyi.baidu.com/sug"

headers={

"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36"

}

data={

"kw":"dog"

}

#使用post请求得到响应的数据

response=requests.post(url=post_url,data=data,headers=headers)

#获取json响应数据

new_response=response.json()

print(new_response)

得到输出:

{"errno": 0, "data": [{"k": "dog", "v": "n. 狗; 蹩脚货; 丑女人; 卑鄙小人 v. 困扰; 跟踪"}, {"k": "DOG", "v": "abbr. Data Output Gate 数据输出门"},......

得解!

以上是 【Python爬虫】:破解百度翻译结果[Python基础] 的全部内容, 来源链接: utcz.com/z/530695.html

回到顶部