首页 > 解决方案 > 更改 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 文件的漂亮肥皂)自动执行此操作?

标签: pythonjsonpython-requestsweb-crawler

解决方案


您不需要编辑 js 文件。JS文件是一致的,不会及时改变。因此,您只需下载文件一次,对其进行更改并保存更改。然后,每当您想提供文件时,请重新发送保存在您计算机中的更改 javascript 文件。


推荐阅读