美文网首页
python爬虫小记----百度翻译api的使用

python爬虫小记----百度翻译api的使用

作者: wangber | 来源:发表于2019-02-18 14:14 被阅读0次

    #python 爬虫小记1--百度翻译API使用
    偶遇python2与3的一些改变:
    cookielib 模块改名为 http.cookiejar


    今天尝试利用python写一个爬虫程序,实现对百度翻译的一个简单搬运,后来发现百度提供了翻译的使用接口,提供了秘钥和appid,直接利用他提供的接口进行访问就能返回翻译结果。。。。。。。。
    这样就感觉没有什么意思,,,,但是还是暂时利用这个接口,弄了一个小东西。
    参照官方提供的demo,主要包括:


    构造URL
    访问URL
    解析返回结果


    json模块:

    JSON到字典转化:
    dictinfo = json.loads(json_str) 输出dict类型

    字典到JSON转化:
    jsoninfo = json.dumps(dict)输出str类型

    info = {'name' : 'jay', 'sex' : 'male', 'age': 22}
    jsoninfo = simplejson.dumps(info)
    print jsoninfo 
    

    Unicode到字典的转化:
    json.loads()
    比如:

    import json
    str = '{"params":{"id":222,"offset":0},{"nodename":"topic"}'
    params = json.loads(str)
    print params['params']['id']
    

    核心代码

    在百度中提供的demo中,运用语言为python2,而我使用的是python3,因此有些库的使用有修改。

    构造URL

    注册成为百度翻译开发者,可以利用官方给的appid和秘钥,利用字符串拼接的方法构造url:

    import http.client
    import hashlib #md5替换
    import urllib 
    import random
    import requests
    import json
    def creaturl(yuan,mubiao,txt):#接收三个字符串参数
        appid = 'xxxxxxxx' #你的appid
        secretKey = 'xxxxxxxx' #你的密钥
        httpClient = None
        myurl = '/api/trans/vip/translate'
        q = txt
        fromLang = yuan
        toLang = mubiao
        salt = random.randint(32768, 65536)
    
        sign = appid+q+str(salt)+secretKey
        #对签名进行加密
        m2=hashlib.md5(sign.encode(encoding='UTF-8')).hexdigest()
        myurl = myurl+'?appid='+appid+'&q='+urllib.parse.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+m2
        return myurl
    

    利用requests模块get方法访问url接收返回网页并解析

    def requ(myurl):     
        try:
    
            re=requests.get("https://fanyi-api.baidu.com"+myurl)
            dic=json.loads(re.text)
            print("翻译结果如下:")
            ##re.text是字符串类型,利用json模块中的loads函数把它转换为字典
            print(dic["trans_result"][0]["dst"])
        except Exception as e:
            print (e)
    

    完整代码:

    #/usr/bin/env python
     
    import http.client
    import hashlib #md5替换
    import urllib 
    import random
    import requests
    import json
    import easygui as g
    
    def creaturl(yuan,mubiao,txt):#接收三个字符串参数
        appid = 'xxxxxxx' #你的appid
        secretKey = 'xxxxxxxx' #你的密钥
        httpClient = None
        myurl = '/api/trans/vip/translate'
        q = txt
        fromLang = yuan
        toLang = mubiao
        salt = random.randint(32768, 65536)
        sign = appid+q+str(salt)+secretKey
        #对签名进行加密
        m2=hashlib.md5(sign.encode(encoding='UTF-8')).hexdigest()
        myurl = myurl+'?appid='+appid+'&q='+urllib.parse.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+m2
        return myurl
    def requ(myurl):     
        try:
    
            re=requests.get("https://fanyi-api.baidu.com"+myurl)
            dic=json.loads(re.text)
            print("翻译结果如下:")
            print(dic["trans_result"][0]["dst"])
        except Exception as e:
            print (e)
        
    def main():
    
        yuan= input("请输入源语言:")
        mubiao=input("请输入目标语言:")
        txt=input("请输入目标内容:")
        my=creaturl(yuan,mubiao,txt)
        requ(my)
    main()
    

    相关文章

      网友评论

          本文标题:python爬虫小记----百度翻译api的使用

          本文链接:https://www.haomeiwen.com/subject/osyaeqtx.html