使用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動畫
- python3:爬有道翻譯(命令列版)Python命令列
- 使用transform製作書本翻頁效果ORM
- [譯] 使用CSS製作球體CSS
- [翻譯] 用 CSS 背景混合模式製作高階效果CSS模式
- Java 英語單詞本 (基於有道翻譯)Java
- aardio爬蟲) 實戰篇:逆向有道翻譯web介面爬蟲Web
- 【Python】Python利用有道翻譯開發API應用示例PythonAPI
- 教你用Python爬蟲自制有道翻譯詞典Python爬蟲
- IDEA Translation外掛中有道智雲(有道翻譯)應用ID,金鑰申請教程Idea
- 有道翻譯最新爬蟲程式碼-基於Python3爬蟲Python
- 呼叫有道智雲API,自動翻譯WORDPRESS標題為英文API
- HBuilder開發詞典app(四)--呼叫有道api完成翻譯功能UIAPPAPI
- 文件翻譯器怎麼用?如何翻譯Word文件?
- 再見所有的翻譯工具!我使用了有道智雲+Python開發一個批量文件翻譯工具,老大對我讚不絕口Python
- [翻譯]CSS變數讓你輕鬆製作響應式網頁CSS變數網頁
- 使用google翻譯 api 翻譯中文成其他語言GoAPI
- 如何製作一款線上編譯器編譯
- 組複製官方翻譯四、MonitoringGroupReplication
- Android 布 局 翻 譯 器Android
- Python 使用白嫖網易翻譯 API 進行翻譯PythonAPI
- 一篇文章教會你利用Python網路爬蟲獲取有道翻譯手機版的翻譯介面Python爬蟲
- Python爬蟲教程-16-破解js加密例項(有道線上翻譯)Python爬蟲JS加密
- 破解有道JS引數,教你用python自制一個翻譯軟體!JSPython
- 源語言、目標語言、翻譯器、編譯器、直譯器編譯
- 【國際化綠皮車】利用Alfred3+有道快速翻譯中英文Alfred
- Python反反爬蟲實戰,JS解密入門案例,詳解呼叫有道翻譯Python爬蟲JS解密
- LWN 文章翻譯 - 名字空間實作系列
- 「翻譯」SAP製造整合和智慧(SAP MII)
- 微信翻譯大型翻車現場?機器翻譯到底有哪些不確定性
- .net core 和 WPF 開發升訊威線上客服系統:呼叫有道翻譯介面實現實時自動翻譯的方法
- 有道自然語言翻譯和文字識別OCR(圖片文字識別)介面呼叫
- oc-plugin-book 文件協作翻譯外掛(類似 LearnKu.com 的文件翻譯)Plugin
- 神經機器翻譯實戰
- 論機器翻譯之淺薄