[教程] DeepLX+Tor+自定义引擎 #83
Replies: 2 comments 4 replies
-
最近更新的2.1.1版本已经修复了内置deepl (free) 引擎,但429报错仍然会阻碍对大量文本的翻译,同样可以用Tor来解决。 |
Beta Was this translation helpful? Give feedback.
-
I am not tech savvy or not knowledged in specifically network, but taking this discussion post as guide, i find my way to use it. Mellow and Mapple did not work on me so i had to use proxifier, with sthp and tor ip changer first I open tor ip changer and connect to tor, then in proxifier I set 127.0.0.1:9050 as proxy, then in proxification rules ipchanger.exe; tail.exe; updater.exe; |
Beta Was this translation helpful? Give feedback.
-
前述 (TL;DR)
这篇是按博客写的所以废话比较多,前述部分请跳过。
最近在用一个非常优秀的工具ETCP(电子书翻译器)读齐泽克的书,尽管有些小问题,但是项目作者维护得非常用心,特此致敬。
关于工具的优点可以直接去看作者网站上的文章我就不赘述了,我也还在协同处理一些issue。
最近这段时间,deepl的白嫖引擎突然用不了了,感觉应该是官方在做封锁限制吧,修起来应该也不容易。
原本打算开通开发者账号看看效果,结果半本书不到当月额度就爆表了。感觉除非完全不差钱,不然付费订阅体验还不如白嫖。
接下来就开始了一段摸索,首先是这个关于HTTP Error 429: Too Many Requests的贴子里提到的问题,显然就是最常见的限制访问。作者提供的调节重试次数 (Attempt times) 并没有太奏效,因为一旦到达5次以上就会是1-7小时的等待间隔,让翻译效率大幅降低。
后来经过测试,我认为在tor环境下,以10,20,30,60,120,360,720这样的步进方式会稍微好一点。顺便值得一提的是,贴子末尾提到的隐私保护和指纹泄露的话题刚好和我的摸索结果吻合可以一石二鸟。
同样在关于429访问限制的另一篇贴子里,我也遇到了类似的规律,裸ip直连基本上都会在同一个进度上被限制卡住,无论时间间隔是多少。
好在作者给出了和DeepLX项目对接的自定义引擎配置,省去了我很多尝试的时间。然而,这个项目并不是为翻译书籍这种文本量的工作而开发的,这个贴子表明开发者似乎并不打算直接为api项目加入代理服务器的选项。
最先尝试的是给deeplx单独上tor,很可惜的是proxychains和torsocks都不兼容Deeplx的流量模式,不然事情会简单很多。
还尝试了在防火墙里屏蔽
www2.deepl.com
域名,以阻拦Deeplx与其通信,但似乎不产生任何影响。下面就是我目前摸索出的DeepLX+全局Tor (system-wide Torify) 的临时解决方案 (workaround) ,即爬虫工具最基础的戴套白嫖法 (反反爬) 。
Tor+自动换ip
Linux
主流发行版的源里都自带tor的包,直接装:
到此tor的安装就搞定了,先不要着急启动。
现在tor只能指定代理,而deeplx又不支持代理功能 (最好用的重定向工具proxychains还不兼容) 。这就要用其他工具jailbox以达到全局代理,有用deb发行版的也可以考虑kali-anonsurf ,配置方法相同,路径是
/etc/tor/torrc.anon
。要用git安装,没装过的先
sudo apt install git
。然后修改配置文件,参考自这里以及这里,在torrc里加入这几行:
sudo nano /etc/jailbox/torrc
上面的数值还有微调空间,目前设置的是每10秒换一个ip,没注释请自行参考文档 。
需要给放行白名单或修改dns等参数可以
sudo nano /etc/jailbox/config
,通常环境用不到。现在就可以用下列命令启动或停止全局tor了:
旧Mac (Intel)
相比linux下的jailbox和anonsurf,旧版Mac下的proximac可以很方便的给deeplx单独上tor,不过很久没更新了所以不兼容新版Mac (M1) 。
先安装brew和easy-tor:
安装好后编辑配置文件
sudo nano /opt/homebrew/etc/tor/torrc
到这里tor就搞定了,接下来安装Proximac
然后创建一个配置文件
nano proximac.cfg
按需修改进程名称,我的浏览器流量无法被重定向但curl和deeplx都可以,这就够了
现在可以依次启动两个程序了
运行
curl ifconfig.io
测试ip自动更换全平台方案 (Leaf)
Leaf是目前还在活跃更新的开源全平台方案,还可以给mac开tun全局模式。linux下编译或mac下使用
brew install leaf-proxy
安装。配置文件定制详见这里,目前还不支持按进程名控制流量因此只做了全局Tor的配置。
创建
nano leaf.conf
运行
leaf-proxy -c leaf.conf
或./leaf -c leaf.conf
全平台方案 (Mellow)
Mellow的好处是可以像proxychains那样设置多重代理和指定流量重定向规则,对于网络环境复杂特殊的情况十分灵活友好,而且在新Mac (M1) 上也能运行。缺点是已经停止维护了,但和闭源收费软件proxifier相比还是更值得进行测试的。
下载Mellow,
运行后会出现托盘图标,右键
create config
→create conf template
→选中新创建的配置名→edit selected
→贴入下面任一内容:选项1:全局tor
选项2:deeplx走Tor,其余直连
选项3:deeplx走Tor,国内直连,其余Clash,定制参考
然后先运行
tor
再用Mellow的connect
,顺序乱了会冲突。不过这里需要用到tor自己的配置文件,所以要做同样的修改
sudo nano /usr/local/etc/tor/torrc
分别用网页
wtfismyip.com
和ifconfig.io
进行测试,或用curl ifconfig.io
和curl --socks5 127.0.0.1:9050 ifconfig.io
DeepLX+自定义引擎
安装DeepLX
Mac
Linux
装好后两个系统都同样可以直接terminal里运行
deeplx
启动配置自定义引擎
调试引擎参数时,试过在headers里塞各种奇怪的东西,但都无法影响被限制访问的情况。也就是说,官方接口那边就是直接处理ip地址的。所以,还是最小化配置方案最好。
在
电子书翻译器→引擎→自定义→添加
中粘贴一下内容并保存:目前摸索出的比较稳妥的参数是这样的:
并发限制:1
时间间隔:5.0
重试次数:6
超时:5.0
因为洋葱网络的特点,间隔/超时太高或太低都会有副作用。
参考硬编码的间隔次数自行调整:
1 x 5 = 5 秒
2 x 5 = 10 秒
3 x 10 = 30 秒
4 x 30 = 120 秒
5 x 120 = 10 分钟
6 x 600 = 1小时
7 x 3600 = 7小时
PS1:我发现每次调整过自定义引擎后,必须完全关闭电子书翻译器插件设置窗口,再次打开后进行测试才能有效调用新修改的数据。
PS2:在中断发生时可能会漏翻一个段落,应该在翻译完成后人工核查并启用缓存以方便返工。
自动重启脚本
这个实验性脚本的意图是为了重置deeplx与deepl服务器之间的tcp连接和会话,目前设置为每30秒重启一次deeplx。429通常会规律性的连续触发4次左右,而在连续429之间如果重启deeplx进程会很大概率避免后续的429。因此,该脚本会大大缩短因连续429所浪费的时间,经测试,200个段落3万个单词的文本翻译时间大约在15分钟左右。
nano deeplx.sh
运行
./deeplx.sh
开工
如果一切顺利,现在就能开工了,分窗口在terminal运行:
如果不是服务器或不需要常驻,可以用下列命令停止所有程序:
前台运行脚本
如果不喜欢让Tor和deeplx常驻后台的话,可以用这个脚本:
nano tordeeplx.command
(或.sh
)保存后赋予运行权限
sudo chmod +x tordeeplx.command
测试429率
目前的配置下,429率大概在20%左右,运气会产生一定影响。
以这种频率更换exit node和发送翻译请求的话,ip地址用不到被封就会被切换并且不会被同一台客户端复用。因此,理论上能够长期保持整个洋葱网络对于deepl的洁净度,是可以长期相对稳定使用的。
Beta Was this translation helpful? Give feedback.
All reactions