当前位置: 首页 > news >正文

天津雍鑫建设投资集团网站南宁网

天津雍鑫建设投资集团网站,南宁网,网站限制ip注册,日本创意产品设计案例目录 〇、引言一、目标二、请求参数分析三、响应分析四、编写爬虫脚本【隧道代理的使用】 〇、引言 无论是学习工作、旅游出行、跨境电商、日常交流以及一些专业领域都离不开翻译工具的支持。本文就带大家通过爬虫的方式开发一款属于自己的翻译工具~ 一、目标 如下的翻译接口…

目录

  • 〇、引言
  • 一、目标
  • 二、请求参数分析
  • 三、响应分析
  • 四、编写爬虫脚本【隧道代理的使用】

〇、引言

无论是学习工作、旅游出行、跨境电商、日常交流以及一些专业领域都离不开翻译工具的支持。本文就带大家通过爬虫的方式开发一款属于自己的翻译工具~

一、目标

如下的翻译接口:

本接口涉及到多种加密以及编码概念,没有了解或者不是很熟悉的,建议先给
《爬虫工程师必备技术栈——加密解密以及字符编码原理》
这篇文章再仔细看看~

在这里插入图片描述

二、请求参数分析

  1. 分析接口,对比会发现只有sign和mysticTime是变化的,后者也很容易可以看出是13位时间戳。
    在这里插入图片描述
  2. 全局搜索sign,可以定位到如下位置:
    在这里插入图片描述
  3. python还原【很简单的加密,直接上代码】:
 ts = str(int(time.time() * 1000))str_sign = f"client=fanyideskweb&mysticTime={ts}&product=webfanyi&key=fsdsogkndfokasodnaso"sign = hashlib.md5((str_sign).encode('utf-8')).hexdigest()

三、响应分析

接口的响应是一串乱码,所以要来定位到解密位置,并用python来还原~

  1. 下断点,追到如下是解密的位置:
    在这里插入图片描述

  2. 跳进去:
    在这里插入图片描述
    t是响应数据,是加密过后的,上图是js解密逻辑,使用的AES解密,key和iv都是走的同一加密逻辑,而入参o和n都是固定不变的。

  3. 跳进y函数:
    在这里插入图片描述
    这部分python还原:

import hashlib# o --> key = 'ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl'
# n --> iv  = 'ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4'key_md5 = hashlib.md5(('ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl').encode('utf-8')).digest()
iv_md5 = hashlib.md5(('ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4').encode('utf-8')).digest()print(len(key_md5))   
print(key_md5)print(len(iv_md5))
print(iv_md5)
  1. 整体python还原:
from Cryptodome.Cipher import AES
import hashlib
import base64
from Cryptodome.Util.Padding import unpad
import time
import requests
import jsondef decrypt(decrypt_str):key = "ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl"iv = "ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4"key_md5 = hashlib.md5(key.encode('utf-8')).digest()iv_md5 = hashlib.md5(iv.encode('utf-8')).digest()print('key_md5:', key_md5)print('iv_md5:', iv_md5)aes = AES.new(key=key_md5, mode=AES.MODE_CBC, iv=iv_md5)code = aes.decrypt(base64.urlsafe_b64decode(decrypt_str))return unpad(code, AES.block_size).decode('utf8')

四、编写爬虫脚本【隧道代理的使用】

本脚本完全可以直接CV开一个免费的翻译服务,配合使用隧道代理,完全可以满足日百万级翻译任务量!

关于隧道代理,从业这么多年里用过很多家的产品,但对比各家的隧道代理价格和实际测试之后,这里我比较推荐大家使用青果代理IP

  • 青果代理IP免费体验~在这里插入图片描述

整体使用下来的感受:

  1. 响应速度快,隧道代理池里的IP业务成功率高;
  2. 价格确实很便宜,单个IP才0.0014元;
  3. 最重要的一点是可以免费使用任何套餐6小时!

知识点补给站 - 隧道代理:

  • 隧道代理(全球HTTP)是利用高性能主机构建的动态代理服务器,通过将切换IP的操作放到云端,自动管理用户发出的隧道请求,实现云端自动切换IP转发用户请求,简化用户的操作,降低了用户的时间成本;
  • 隧道代理使用简单,开发者接入隧道服务即可,如下示例直接集成到程序中,极大简化了编程的复杂度。
  • 在这里插入图片描述
#coding=utf-8
# __author__ = 孤寒者
import base64
import hashlib
import json
import timeimport requests
from Cryptodome.Cipher import AES
from Cryptodome.Util.Padding import unpad
from fake_useragent import UserAgentdef generate_proxy():return {'http': 'http://{authkey}:{authpwd}@隧道地址','https': 'http://{authkey}:{authpwd}@隧道地址'}def generate_sign_and_timestamp():timestamp_13 = str(int(time.time() * 1000))str_sign = f"client=fanyideskweb&mysticTime={timestamp_13}&product=webfanyi&key=fsdsogkndfokasodnaso"sign = hashlib.md5(str_sign.encode('utf-8')).hexdigest()return sign, timestamp_13def generate_ydy_headers():return {'Accept': 'application/json, text/plain, */*','Content-Type': 'application/x-www-form-urlencoded','Cookie': 'OUTFOX_SEARCH_USER_ID=-666666@10.125.88.154; OUTFOX_SEARCH_USER_ID_NCOO=1574852965.0963037','Origin': 'https://fanyi.youdao.com','Referer': 'https://fanyi.youdao.com/','User-Agent': UserAgent().random,'sec-ch-ua': '"Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"','sec-ch-ua-platform': '"Windows"'}def decrypt_response(encrypted_str):key = "ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl"iv = "ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4"key_md5 = hashlib.md5(key.encode('utf-8')).digest()iv_md5 = hashlib.md5(iv.encode('utf-8')).digest()aes = AES.new(key=key_md5, mode=AES.MODE_CBC, iv=iv_md5)decrypted_data = aes.decrypt(base64.urlsafe_b64decode(encrypted_str))return unpad(decrypted_data, AES.block_size).decode('utf-8')def ydy_translate(text, source='auto', target='en'):sign, timestamp_13 = generate_sign_and_timestamp()form_data = {'i': text,'from': source,'to': target,'sign': sign,'keyid': 'webfanyi','client': 'fanyideskweb','product': 'webfanyi','appVersion': '1.0.0','vendor': 'web','pointParam': 'client,mysticTime,product','mysticTime': timestamp_13,'keyfrom': 'fanyi.web',}response = requests.post(url="https://dict.youdao.com/webtranslate", headers=generate_ydy_headers(),data=form_data, proxies=generate_proxy())res_dic = json.loads(decrypt_response(response.text))# 翻译不了 / 未被识别的语种if res_dic['code'] != 0:return '', 'ydy-translate-fail'tgt_values_list = [result['tgt'] for result in res_dic['translateResult'][0]]res_data = ' '.join(tgt_values_list)source_lang = res_dic['type'].split('2')[0]return source_lang, res_datawhile True:wait_text = input('请输入要翻译的文本:')detect_source_lang, trans_result = ydy_translate(wait_text)print(f'输入文本语言为:{detect_source_lang} - 翻译结果:{trans_result}')

在这里插入图片描述

http://www.hkea.cn/news/834372/

相关文章:

  • 做学校网站什么文案容易上热门
  • 网站开发技术包括郑州网站关键词排名
  • 网站开发预算怎么算百度竞价ocpc
  • 成都锐度设计公司怎么样优化大师怎么提交作业
  • 租用网站服务器东莞市网站建设
  • 馆陶县网站网站运营管理
  • 西双版纳傣族自治州医院seo搜索优化网站推广排名
  • wordpress站点网址小吃培训2000元学6项
  • 郑州网站制作天强科技seo百度发包工具
  • 江阴市住房与建设局网站seo工资多少
  • wordpress image.php南宁百度首页优化
  • 谢家华做网站百度指数与百度搜索量
  • wordpress 安装 ubuntu整站优化代理
  • 做公司网站协议书模板下载百度竞价推广公司
  • 福田蒙派克6座二手值多少钱重庆seo点击工具
  • 有了域名 怎么做网站外贸网站推广方法之一
  • 审美网站长春网站建设路
  • 网站 管理系统域名查询注册信息查询
  • 专业网站设计发展前景推广网站软文
  • 怎么建设seo自己网站网站优化推广教程
  • 最新app开发软件石家庄网站建设seo公司
  • 江苏自助建站系统哪家好推广网站要注意什么
  • 唐河做网站关键字搜索引擎
  • 松江专业做网站公司seo视频教程百度云
  • 淄博品质网站建设竞价推广怎么样
  • 搜狗站群系统资源网站优化排名优化
  • 建设一个网站哪家好网站推广优化的原因
  • 做网站的上海公司有哪些情感链接
  • 梧州做网站建设数字营销公司
  • 加强新闻网站建设建议seo高手培训