python爬取有道翻譯
- 實(shí)現(xiàn)原理
- 操作步驟
- 注意事項(xiàng)
實(shí)現(xiàn)原理
利用urllib包中的request對(duì)象模擬瀏覽器訪問有道翻譯服務(wù)器(發(fā)送相同格式的request)。
用urllib包中的parse來將數(shù)據(jù)轉(zhuǎn)化為相同格式。
得到的相應(yīng)通過編碼之后,以dict形式取出翻譯內(nèi)容。
import urllib.request
import urllib.parse
import json
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
while True:
content = input('請(qǐng)輸入翻譯內(nèi)容:')
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,這個(gè)是用來訪問的地址。再找到form data,復(fù)制到py文件中并封裝成dict,通過parse的方法將其變?yōu)榉?wù)器會(huì)接收的格式,通過URLopen方法進(jìn)行一次訪問,接收數(shù)據(jù),處理數(shù)據(jù)。
注意事項(xiàng)
有道翻譯已經(jīng)做了反爬蟲處理,需要將url中的_o去除,但是這樣就只支持漢譯英和外譯漢了。漢語到其它語言還沒法處理。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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