在Android上为Python翻译JS

在Android上为Python翻译JS,python,beautifulsoup,bs4,Python,Beautifulsoup,Bs4,我尝试仅使用python和bs4从“dlbutton”获取javascript生成的href。我不能使用繁重的javascript解析器,因为我使用的是Android <script type="text/javascript"> var n = 2; var b = 413132; document.getElementById('dlbutton').href = "/n/abc/"+(n + n * 2 + b)+"3/6775808test.txt";

我尝试仅使用python和bs4从“dlbutton”获取javascript生成的href。我不能使用繁重的javascript解析器,因为我使用的是Android

<script type="text/javascript">
    var n = 2;
    var b = 413132;
    document.getElementById('dlbutton').href = "/n/abc/"+(n + n * 2 + b)+"3/6775808test.txt";
    }
</script>

使用bs4获得脚本标记后,您可以regex,然后执行/评估代码:

import re


h = """<script type="text/javascript">
    var n = 2;
    var b = 413132;
    document.getElementById('dlbutton').href = "/n/abc/"+(n + n * 2 + b)+"3/6775808test.txt";
    }
</script>"""
var = re.findall("(?<=var)\s+(.*)", h)
exp = re.search("(?<=\+)\(.*\)", h).group()
href = re.search("(?<=\.href)\s+\=(.*);", h).group(1).replace(exp, "str{}".format(exp))

for v in var:
    exec v

url = eval(href)
print(url)
重新导入
h=”“”
var n=2;
var b=413132;
document.getElementById('dlbutton').href=“/n/abc/”+(n+n*2+b)+“3/6775808test.txt”;
}
"""

var=re.findall(“(?你想得到什么?哦,对不起,请看我的编辑…不用担心,通常使用eval时要小心。
import re


h = """<script type="text/javascript">
    var n = 2;
    var b = 413132;
    document.getElementById('dlbutton').href = "/n/abc/"+(n + n * 2 + b)+"3/6775808test.txt";
    }
</script>"""
var = re.findall("(?<=var)\s+(.*)", h)
exp = re.search("(?<=\+)\(.*\)", h).group()
href = re.search("(?<=\.href)\s+\=(.*);", h).group(1).replace(exp, "str{}".format(exp))

for v in var:
    exec v

url = eval(href)
print(url)