python爬取有道翻譯
- 實現原理
- 操作步驟
- 注意事項
實現原理
利用urllib包中的request對象模擬瀏覽器訪問有道翻譯服務器(發送相同格式的request)。
用urllib包中的parse來將數據轉化為相同格式。
得到的相應通過編碼之后,以dict形式取出翻譯內容。
import urllib.request
import urllib.parse
import json
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
while True:
content = input('請輸入翻譯內容:')
data = {}
data['i'] = content
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '15613765644784'
data['sign'] = '5caabbf646f6585277b7cebf45f18244'
data['ts'] = '1561376564478'
data['bv'] = '6074bfcb52fb292f0428cb1dd669cfb8'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_REALTlME'
data = urllib.parse.urlencode(data).encode('utf-8')
r = urllib.request.urlopen(url,data)
html = r.read().decode('utf-8')
target = json.loads(html)
print("翻譯:%s"%(target['translateResult'][0][0]['tgt']))
print('-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-')
操作步驟
訪問翻譯頁面,在一次翻譯后捕捉提交方式為post的頭文件,在此頭文件中找到requestURL,這個是用來訪問的地址。再找到form data,復制到py文件中并封裝成dict,通過parse的方法將其變為服務器會接收的格式,通過URLopen方法進行一次訪問,接收數據,處理數據。
注意事項
有道翻譯已經做了反爬蟲處理,需要將url中的_o去除,但是這樣就只支持漢譯英和外譯漢了。漢語到其它語言還沒法處理。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
