- 需求:破解百度翻译
- post请求(携带了参数)
- 响应数据是一组json数据
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
import json
if __name__ =="__main__":
#1.指定url
post_url ='https://fanyi.baidu.com/sug'
#2.进行UA伪装
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
#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()
#持久化存储
fileName = word+'.json'
fp =open(fileName,'w',encoding='utf-8')
json.dump(dic_obj,fp=fp,ensure_ascii=False)
print('over!!!')
json()方法返回的是obj,如果确认响应的数据是json类型的,才可以使用
指定url进行UA伪装,post请求参数处理,请求发送,获取响应数据
持久化存储
fileName=word+'.json'
fp=open(fileName,'w,encoding='utf-8')
json.dump(dic_obj,fp=fp,ensure_ascii=False)
https://blog.csdn.net/lizhixin705/article/details/82344209
json 模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps() 和 json.loads()。]
1.json.dumps将一个Python数据结构转换为JSON:
2.json.loads将一个JSON编码的字符串转换回一个Python数据结构:
3.json.dump() 和 json.load() 来编码和解码JSON数据,用于处理文件。
在使用json.dumps时要注意一个问题
>>> import json
>>> print json.dumps('中国')
"\u4e2d\u56fd"
输出的会是
'中国' 中的ascii 字符码,而不是真正的中文。
.这是因为json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False:
>>> import json
>>> print json.dumps('中国')
"\u4e2d\u56fd"
>>> print json.dumps('中国',ensure_ascii=False)
"中国"
>>>