天天看点

[干货]PYTHON三种翻译爬虫(百度翻译,金山爱词霸,有道翻译)一 环境准备二 百度翻译爬虫二 金山爱词霸翻译三 有道翻译

零 文章目录

  • 一 环境准备
    • 1.百度翻译
    • 2.爱词霸翻译
    • 3.有道翻译
  • 二 百度翻译爬虫
  • 二 金山爱词霸翻译
  • 三 有道翻译

一 环境准备

本系列文章使用 PYTHON 3.X 版本

1.百度翻译

from random import randint
from hashlib import md5
import requests
           

2.爱词霸翻译

import requests
from bs4 import BeautifulSoup
           

3.有道翻译

import urllib
import response
import json
import requests
           

二 百度翻译爬虫

话不多说,直接上 源码,字符串f和t 的值可以替换成 auto(自动检测)、zh(中文)、en(英语)、wyw(文言文)、jp(日语)、kor(韩语) 等
def baidu(text): #输入:字符串,输出:字符串
	f = "zh"
    t = "en"
    
    if f == t:
        return text

    appid = "20200803000532299"
    q = text
    salt = str(randint(32768, 65536))
    key = "CjKsOO4hL_viuaJsV8iG"

    m = md5()
    sign = appid + q + salt + key
    sign = sign.encode("utf-8")
    m.update(sign)
    sign = m.hexdigest()

    q = q.replace("\n", "%0A")

    url = "http://api.fanyi.baidu.com/api/trans/vip/translate?q=" + q + "&from=" + f + "&to=" + t + "&appid=" + appid + "&salt=" + salt + "&sign=" + sign

    response = requests.get(url)
    json = eval(response.text)

    fanyi = ""
    for word in json["trans_result"]:
        fanyi += word["dst"]
        fanyi += "\n"
        
    return fanyi
           

二 金山爱词霸翻译

def iciba(text): #输入:字符串,输出:字符串
    text = text.replace("\n", " ")
    headers = {"User-Agent" : "User-Agent:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"}
    url = "http://www.iciba.com/word?w="+text
    response = requests.get(url,headers=headers).text
    soup = BeautifulSoup(response, "lxml")
    data1 = soup.find(name="div", class_="Mean_trans__166Ns")
    data2 = soup.find(name="ul", class_="Mean_part__1RA2V")
    if data1 != None:
        data3 = data1.find(name="p")
        fanyi = data3.text
    elif data2 != None:
        data3 = data2.find_all(name="span")
        fanyi = ""
        for n in data3:
            t = n.text

            enter = False
            if t[-2:] != "; ":
                enter = True

            if enter:
                fanyi += "\n"
            fanyi += t
    
    return fanyi
           

三 有道翻译

代码源自网络
def dao(text):
    url = 'http://fanyi.youdao.com/translate'
    head = {}
    head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
    data = {}
    data['i'] = text
    data['from'] = 'AUTO'
    data['to'] = 'AUTO'
    data['smartresult'] = 'dict'
    data['client'] = 'fanyideskweb'
    data['salt'] = '15530239380571'
    data['sign'] = '6979c233adaffb85f0af349de5644ca0'
    data['ts'] = '1553023938057'
    data['bv'] = '33a62fdcf6913d2da91495dad54778d1'
    data['doctype'] = 'json'
    data['version'] = '2.1'
    data['keyfrom'] = 'fanyi.web'
    data['action'] = 'FY_BY_REALTlME'
    data['typoResult'] = 'false'
    data = urllib.parse.urlencode(data).encode('utf-8')
    response = urllib.request.urlopen(url,data)
    html = response.read().decode('utf-8')
    target = json.loads(html)
    target = target['translateResult'][0][0]['tgt']
    return target