使用Urllib2製做有道翻譯器

       今天是學習爬蟲的次日了,看了網上不少初學者都喜歡爬取字典翻譯。確實,有一個本身隨時隨地使用的翻譯神器,省去了打開瀏覽器輸入網址的那些繁瑣,也騰出了很多時間。在這裏我選擇的是有道翻譯,相比於百度翻譯來講,它的特色就是使用了post請求來獲取json格式數據,而百度翻譯使用的是get請求。由於博主暫時還處於爬蟲的入門階段,而網上的入門資料和圖書館借閱的書籍仍是python2相對多一些,因此我使用的庫也是urllib2和urllib,但後面仍是確定會轉到python3,畢竟python2到2020年官方就會中止支持了,還有一年多的時間。python

1.分析post請求的URL:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=ruleweb

2.查看Form Data
    其爲post請求的數據,將其粘帖到sublime編輯器下,使用正則替換,將其轉化爲字典的形式算法

"i": "python",
"from": "AUTO",
"to": "AUTO",
"smartresult": "dict",
"client": "fanyideskweb",
"salt": "1529759898442",
"sign": "8fa19ef594cd75bff554ef1f03dc5901",
"doctype": "json",
"version": "2.1",
"keyfrom": "fanyi.web",
"action": "FY_BY_REALTIME",
"typoResult": "false",

3.代碼實現json

​
#!/usr/bin/env python
# coding=utf-8

import urllib
import urllib2
def youdao():
    # 構建url連接
    # url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
    # 這裏要去掉?號前面的_o,否則會進行加密算法,致使失敗
    url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
    # 構建請求頭
    headers = {
        "User-Agent" : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:59.0) Gecko/20100101 Firefox/59.0'
    }
    words = raw_input("請輸入要翻譯的內容:")
    # 構建請求體
    format_data = {
        'i': words,
        'from':'AUTO',
        'to':'AUTO',
        'smartresult':'dict',
        'client':'fanyideskweb',
        'salt':'1526368137702',
        'sign':'f0cd13ef1919531ec9a66516ceb261a5',
        'doctype':'json',
        'version':'2.1',
        'keyfrom':'fanyi.web',
        'action':'FY_BY_REALTIME',
        'typoResult':'false'
    }
    # 進行url編碼
    format_data = urllib.urlencode(format_data)
    # 獲取request文件(傳入了data參數,就是post請求)
    request = urllib2.Request(url, data = format_data, headers = headers)
    # 打開請求文件
    response = urllib2.urlopen(request)
    # 讀取文件內容
    content = response.read()
    content = eval(content)
    ret = content["translateResult"][0][0]['tgt']
    print(ret)
    #return ret
if __name__ == "__main__":
    youdao()
​

原文出處:https://www.jzfblog.com/detail/16,文章的更新編輯以此連接爲準。歡迎關注源站文章!瀏覽器

相關文章
相關標籤/搜索