Python调用None.js + Express搭建的HTTP服务
想用 Python 来编写整个爬虫,可以使用 Node.js 将加密算法暴露成一个HTTP服务,Python 直接调用HTTP服务,通过发送 Request Body 来传递数据,加密参数通过HTTP的 Response 返回。Express 是 Node.js 最流行的HTTP服务框架
安装express
1 | npm i express |
官网地址:https://www.expressjs.com.cn/starter/installing.html
搭建HTTP服务
app.js 文件写入:
1 | const express = require('express') |
然后在 app.js 所在目录运行:
1 | node app.js |
这时应该可以看到:
1 | Example app listening on port 8081 |
说明服务搭建成功了,它接收一个post请求,然后返回 sign 函数的计算结果作为 Response 的内容
Python调用HTTP服务
main.py 文件写入:
1 | import time |
运行结果:
1 | {'encryptStr': '1662528134abcdefg'} |
其他事项
一般来说请求头和加密算法都会用到 时间戳,那这个 时间戳 要么用 Python 生成的,要么用 Nonde.js 生成的。网站会根据请求头中的 时间戳 对加密参数进行验证,如果 时间戳 不一致可能会验证失败