#post请求(携带了参数)
#响应数据是一组json数据
先通过抓包找到url
发现百度翻译使用了Ajax(局部刷新)
所以看抓取的XHR文件
XHR文件返回的是一个json文件
抓包的话用fiddle或者在页面f12用谷歌开发者工具
# -*- coding: utf-8 -*-
import requests
import json
if __name__ == '__main__':
#step1 指定url
post_url ='https://fanyi.baidu.com/sug'
#step2 UA伪装
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36'
}
#step3 post请求参数出路(和get一样)
word = input('enter a word:')
data = {
'kw':word
}
#step4 发送请求
#url = posturl data= 参数字典
response = requests.post(url=post_url,data=data,headers=headers)
#step5 获取响应数据
#json方法返回是obj(对象),如果确认响应数据是json类型的 才可以使用json()
dic_obj = response.json()
#test
#print(dic_obj)
#step6 保存返回的数据
fileName =word+'.json'
fp =open(fileName,'w',encoding='utf-8')
#json中含有中文,所以要加上ensure_ascii=False
json.dump(dic_obj,fp=fp,ensure_ascii=False)
print(fileName,"完成")