post请求+查找post的url+返回json数据
# - 需求:破解百度翻译
# - post请求(携带了参数)
# - 响应数据是一组json数据
import requests
import json
if __name__=='__main__':
#1,指定url,这儿指定的是post的url,f12->network->XHR->Request URL: https://fanyi.baidu.com/sug
#可以看到类型为:Request Method: POST
url_post = 'https://fanyi.baidu.com/sug'
#2,UA伪装
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
}
#3,获取数据(发起请求)
#data类比Parma,都是参数
word = input('输入要翻译的单词:\n')
data={
'kw':word #这儿的'kw',是翻译页面查看搜索单词时,携带数据的,原型就是: kw:单词
}
response = requests.post(url=url_post,data=data,headers=headers)
#4,获取响应数据,注意数据类型(之前就看到,返回的是json数据)
#res = response.text 返回的是文本,字符串类型数据({"errno":0,"data":[{"k":"do","v":"aux. \u6784\u6210\u7591\u95ee\u53e5\u548c\u5426\u5b9a\u53e5; )
res_obj = response.json() #:json()方法返回的是obj对象(如果确认响应数据是json类型的,才可以使用json())
#5,存储数据
filename = word+'.json' #存的是json文件
f = open(filename,'w',encoding='utf-8')
#json的dump方法进行存储数据
json.dump(res_obj,fp=f,ensure_ascii=False)
print('爬取完成!')
#2022.5.24日