在Android上为Python翻译JS
我尝试仅使用python和bs4从“dlbutton”获取javascript生成的href。我不能使用繁重的javascript解析器,因为我使用的是Android在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";
<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)