使用Urllib2製作有道翻譯器
今天是學習爬蟲的第二天了,看了網上很多初學者都喜歡爬取字典翻譯。確實,有一個自己隨時隨地使用的翻譯神器,省去了開啟瀏覽器輸入網址的那些繁瑣,也騰出了不少時間。在這裡我選擇的是有道翻譯,相比於百度翻譯來說,它的特點就是使用了post請求來獲取json格式資料,而百度翻譯使用的是get請求。因為博主暫時還處於爬蟲的入門階段,而網上的入門資料和圖書館借閱的書籍還是python2相對多一些,所以我使用的庫也是urllib2和urllib,但後面還是肯定會轉到python3,畢竟python2到2020年官方就會停止支援了,還有一年多的時間。
1.分析post請求的URL:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
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.程式碼實現
#!/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()
相關文章
- 爬取有道翻譯
- 爬蟲-有道翻譯爬蟲
- [譯] 使用 Flutter 製作 3D 翻轉動畫Flutter3D動畫
- 有道雲詞典--翻譯/螢幕取詞翻譯
- 爬蟲—有道翻譯案例分析爬蟲
- PHP微信開發--有道翻譯PHP
- 有道翻譯軟體下載地址
- 在命令列用使用有道翻譯,python寫一個命令列有道詞典命令列Python
- Angular 5 開發一個有道翻譯Angular
- python3:爬有道翻譯(命令列版)Python命令列
- Java 英語單詞本 (基於有道翻譯)Java
- [譯] 使用CSS製作球體CSS
- [翻譯] 用 CSS 背景混合模式製作高階效果CSS模式
- 遊戲製作相關---HAM教程翻譯本(五)(轉)遊戲
- 遊戲製作相關---HAM教程翻譯本(四)(轉)遊戲
- python製作查詢單詞翻譯的指令碼Python指令碼
- IDEA Translation外掛中有道智雲(有道翻譯)應用ID,金鑰申請教程Idea
- 呼叫有道智雲API,自動翻譯WORDPRESS標題為英文API
- 教你用Python爬蟲自制有道翻譯詞典Python爬蟲
- aardio爬蟲) 實戰篇:逆向有道翻譯web介面爬蟲Web
- 使用版本控制來進行翻譯協作
- 如何製作一款線上編譯器編譯
- 【Python】Python利用有道翻譯開發API應用示例PythonAPI
- 有道翻譯最新爬蟲程式碼-基於Python3爬蟲Python
- HBuilder開發詞典app(四)--呼叫有道api完成翻譯功能UIAPPAPI
- 翻譯的未來:翻譯機器和譯後編譯編譯
- 再見所有的翻譯工具!我使用了有道智雲+Python開發一個批量文件翻譯工具,老大對我讚不絕口Python
- 文件翻譯器怎麼用?如何翻譯Word文件?
- WPF製作的小型筆記本-仿有道雲筆記筆記
- [翻譯]CSS變數讓你輕鬆製作響應式網頁CSS變數網頁
- (翻譯)火狐作業系統javascriptAPI作業系統JavaScriptAPI
- Python爬蟲教程-16-破解js加密例項(有道線上翻譯)Python爬蟲JS加密
- 廈門大學圖書館引入網易有道文件翻譯提升學術研究能力
- 使用google翻譯 api 翻譯中文成其他語言GoAPI
- 一篇文章教會你利用Python網路爬蟲獲取有道翻譯手機版的翻譯介面Python爬蟲
- ppt製作的翻書效果及教程
- Python 使用白嫖網易翻譯 API 進行翻譯PythonAPI
- 破解有道JS引數,教你用python自制一個翻譯軟體!JSPython