p1-百度翻译

发布时间 2024-01-05 20:49:39作者: zhang0513

一、学习目标

  1、通过百度翻译,输入一个关键字能够得到其翻译的结果,例如

 二、解决思路

  1、导入模块

import requests
import json

  2、准备url  【https://fanyi.baidu.com】,在表单中输入dog后,可以F12,然后网络中选择XHR,观察数据请求的过程;得到请求方式为POST,其中请求链接是https://fanyi.baidu.com/sug,如下图:

   3、POST请求一般会携带参数,在网页中请求中看到kw:"dog",其中参数一般都是以字典的形式出现,kw:"dog",然后再看响应的结果,如下图所示

   4、从上面的分析可以看到,响应的数据中有需要的数据,只需要拿到这些数据即可

三、代码实例

import requests
import json
if __name__ =="__main__":
    url = 'https://fanyi.baidu.com/sug'
    #处理url携带参数:封装到字典中
    word = input("请输入要翻译的单词: ")
    params  = {
         'kw':word
    }
    #UA伪装
    headers = {
            "User-Agent":
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53"
    }
    #对指定的url发起的请求是携带参数的
    response = requests.post(url=url,data=params ,headers=headers)
    dic_obj =response.json() #返回字典
    flie_name = word + '.json'
   # 保存数据
   fp = open(flie_name,mode='w',encoding='utf-8')
    fp_str =  json.dumps(dic_obj,ensure_ascii=False)
    with open(flie_name,'w',)as f:
        f.write(fp_str)
    print('over')

其中,dic_obj返回的数据,下面的数据可以通过字典所学的方式来获取

 获取json中字典中的元素方式: