python - 更改 javascript 响应并重新发送
问题描述
我正在尝试从服务器获取 java 脚本文件,对其进行操作并将其重新发送为对另一个请求的响应。这是请求和响应文件
import requests as req
headers = {'Connection': 'keep-alive',\
'Pragma': 'no-cache',\
'Cache-Control': 'no-cache',\
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/75.0.3770.142 Safari/537.36',\
'Accept': '*/*',\
'Accept-Language': 'en-GB,en;q=0.9,en- US;q=0.8,fa;q=0.7,eo;q=0.6',\
'Cookie': '_ga=GA1.1.879245751.1566985641; cookieconsent_status=dismiss; \
csrftoken=soEaxgZCM95FtydIUO4McG7G5Uek2uknLRCs0K6VI8amnbEAw1dXWV3kIONBtpgV; \
_gid=GA1.1.1723047283.1573514239; io=yWUz84McCeIU7PLvJz1w'}
response = req.get('https://skribbl.io/js/game.js', headers = headers)
现在我想编辑 js 文件,例如,我想在它的函数的第一行添加一行。我的代码在这里
x = 'o.prototype.createTransport=function(t){'
y = 'o.prototype.createTransport=function(t){console.log(this.hostname);'
response.__dict__['_content'] = str.encode(str(response.__dict__['_content']).replace(x, y))
内容更改正确,但问题是我认为我应该更改“内容长度”和其他一些我不知道的属性,以便浏览器可以解析这个新的 js 代码。例如,我不知道如何计算此响应的新“内容长度”。之后是否有任何标准库(如用于 html 文件的漂亮肥皂)自动执行此操作?
解决方案
您不需要编辑 js 文件。JS文件是一致的,不会及时改变。因此,您只需下载文件一次,对其进行更改并保存更改。然后,每当您想提供文件时,请重新发送保存在您计算机中的更改 javascript 文件。
推荐阅读
- python - 如何在 FiPy 中编写具有自变量的方程项?
- r - 使用 R veriosn 3.6.1 以 csv 格式导入数字数据的问题
- android - 在 Android\Sdk 中找不到带有哈希字符串“android-28”的目标
- rust - 如何给 impl trait 起别名?
- django - 如何在不编写 if else 语句的情况下排除 AND 查询集中的空值
- flutter - 如何使用 Flutter 小部件测试器找到“选定的”ListTile?
- .net-core - BaseController 处理客户端工厂
- python - Flask 邮件附件错误 - 'dict' 对象没有属性 'startswith'
- angular - 是否可以将 Angular routerLink 添加到 HTML标签以避免 SEO 问题?
- django - 在 ubuntu 服务器 16.04 上安装 psycopg2 时出错