python爬虫脚本ie=utf-8_Python脚本工具,有道翻译爬虫脚本工具源码

#有道翻译

# -*-coding:utf-8-*-

import requests

import json

import time

import random

from faker import Faker #faker是一个生成伪造数据的Python第三方库,可以伪造城市,姓名,等等,而且支持中文,需要的时候可以一用。

import hashlib #hashlib的md5算法加密数据

#第一个

import time

from faker import Faker

import random

import hashlib

import requests

'''ua = Faker().user_agent()print(ua)url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'key = input("请输入你需要翻译的内容: ")#生成时间戳tsts = str(time.time() * 1000)#通过ts加0 - 10的随机整数字符生成saltsalt = ts + str(random.randint(0, 10))the_str = "fanyideskweb" + key + salt + "@6f#X3=cCuncYssPsuRUE"#md5加密生成signmd5 = hashlib.md5()md5.update(the_str.encode('utf-8'))sign = md5.hexdigest()headers = {'Cookie': 'OUTFOX_SEARCH_USER_ID=-2022895048@10.168.8.76;','User-Agent': ua,'Host': 'fanyi.youdao.com','Origin': 'http://fanyi.youdao.com','Referer': 'http://fanyi.youdao.com/',}from_data = {'i': key,'from': 'UTO','to': 'UTO','smartresult': 'dict','client': 'fanyideskweb','salt': salt,'sign': sign,'ts': ts,'bv': '5504a5c7c19867a06038cf79d29f756a','doctype': 'json','version': '2.1','keyfrom': 'fanyi.web','action': 'FY_BY_REALTlME'}response = requests.post(url, headers=headers, data=from_data).json()print(response)print(response['translateResult'][0][0]['tgt'])'''

#第二个

class Youdao(object):

def __init__(self, msg):

self.msg = msg

self.url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'

self.D = "ebSeFb%=XZ%T[KZ)c(sy!"

self.salt = self.get_salt()

self.sign = self.get_sign()

def get_md(self, value):

'''md5加密'''

m = hashlib.md5()

# m.update(value)

m.update(value.encode('utf-8'))

return m.hexdigest()

def get_salt(self):

'''根据当前时间戳获取salt参数'''

s = int(time.time() * 1000) + random.randint(0, 10)

return str(s)

def get_sign(self):

'''使用md5函数和其他参数,得到sign参数'''

s = "fanyideskweb" + self.msg + self.salt + self.D

return self.get_md(s)

def get_result(self):

'''headers里面有一些参数是必须的,注释掉的可以不用带上'''

headers = {

# 'Accept': 'application/json, text/javascript, */*; q=0.01',

# 'Accept-Encoding': 'gzip, deflate',

# 'Accept-Language': 'zh-CN,zh;q=0.9,mt;q=0.8',

# 'Connection': 'keep-alive',

# 'Content-Length': '240',

# 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',

'Cookie': 'OUTFOX_SEARCH_USER_ID=-2022895048@10.168.8.76;',

# 'Host': 'fanyi.youdao.com',

# 'Origin': 'http://fanyi.youdao.com',

'Referer': 'http://fanyi.youdao.com/',

'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; rv:51.0) Gecko/20100101 Firefox/51.0',

# 'X-Requested-With': 'XMLHttpRequest'

}

data = {

'i': self.msg,

'from': 'AUTO',

'to': 'AUTO',

'smartresult': 'dict',

'client': 'fanyideskweb',

'salt': self.salt,

'sign': self.sign,

'doctype': 'json',

'version': '2.1',

'keyfrom': 'fanyi.web',

'action': 'FY_BY_CL1CKBUTTON',

'typoResult': 'true'

}

html = requests.post(self.url, data=data, headers=headers).text

print(html)

infos = json.loads(html)

if 'translateResult' in infos:

try:

result = infos['translateResult'][0][0]['tgt']

print(result)

except:

pass

if __name__ == '__main__':

y = Youdao('你是我的小苹果,我是你的优乐美')

y.get_result()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值