不知道大家有没有和我一样喜欢DIY自己专有的软件,比如使用计算器可以符合自己常用的方式来设计界面;使用翻译软件也能按照自己的风格来做出翻译内容。今天就来记录一下如何制作一个符合自己特色的计算器。
内容设计
本次内容我想采用的方式是利用python模拟请求某道翻译,再结合pyqt将内容输入进去再返回在界面上。(中间可以有各种符合自己的元素设计)
谋道翻译的爬虫和逆向
一、抓到数据包以及加密的参数
从图中我们可以搜索之后由post请求返回来的包,表单数据如下,其中sign是特定的加密数据,也就是说我们能找到sign的生成函数之后加入请求数据之中即可得到翻译的数据内容。
二、通过逆向得到sign参数的值
post请求data内的数据加密,通过全局搜索参数名百分之90可以找到它的源函数。
这里全局搜索sign:之后发现一共就4个地方出现了,怎么办?全看一遍呗(不用费脑了)
最后发现仅有这两个地方是符合条件的
打上断电之后直接再次点击搜索,发现被断住了,并且在上面有一个f的赋值
随后我们把鼠标放在h(n)上,找到它的原函数
这便是加密函数了
这个就非常简单了,就是一个标准的md5加密的方式,不过注意的是它并非是直接将要翻译的数据拿来做md5加密。我们接着往下看。
它的值是web+带翻译内容+乱码的方式,因此我们进行跟栈分析一下。
分析得出这个待转换的值是由多个变量拼接而成的,我将鼠标移到对应的位置可以得出,这个n是由于web+待翻译内容+time+"Mk6hqtUp33DGGtoS63tTJbMUYjRrG1Lu"+md5("待翻译内容webdict")。所以我们就明白了这个sing在md5加密前的内容了。我们来测试一下
我们可以看到得出的结果是一样的,那么只需要再将这个结果md5加密一下边是sign的值了。
三、请求数据
在我们解出sign的加密数据之后,就可以结合python和调用execjs库的方法来实现与js的配合,从而完成数据的爬取了。
之后我们就能进行各种方式提取我们想要的数据了。例如
设计网页界面
我们现在已经能进行翻译的转换了,但我们毕竟是要做一个属于自己的东西,所以到这里是不够的,那么我们接下来可以制作一个小网站,后端来运行这个py文件,这里的网页框架我选择使用Flask。
一、对Flask网页进行搭建
这里就简单的写一个好了,主要是能实现爬虫文件和Flask框架的配合(好吧是我太懒了2333),首先需要按照Flask框架(pip install Flask),接着需要导入以下几个模块
from flask import Flask, render_template, request
from youdao import jiemi
首先我们导入了Flask类。 该类的实例将会成为我们的 WSGI 应用,render_template方法能实现渲染文件的调用,request会用于Http请求。jiemi是我上述爬虫文件的名字
这里我直接给上代码了,如果我们网页的请求方式是GET,则渲染"youdao.html"网页文件,如果是POST则返回翻译后的结果。
from flask import Flask, render_template, request
from youdao import jiemi
app = Flask(__name__)
@app.route('/index', methods=["POST", "GET"])
def index():
if request.method == 'POST':
name = request.form.get('content')
print(name)
return jiemi(name)
else:
return render_template('youdao.html')
if __name__ == '__main__':
app.run(debug=1)
看一下效果
点击翻译之后
总结
本次案例主要是对某道翻译进行一次简单的逆向操作,并且分析了其逆向过程。再结合爬虫文件于Flask框架进行简单的整合,我知道网页设计的不好看,但可以自由发挥。要源码请与我联系
ILDD😘