gpt4 book ai didi

javascript - 使用 BeautifulSoup 查找具有特定字符串的 JavaScript 变量

转载 作者:行者123 更新时间:2023-11-30 17:05:27 25 4
gpt4 key购买 nike

我有一个有点棘手的任务,我需要在 JavaScript 变量中找到一些 HTML 并遍历它。

变量看起来像这样:

<script>
var someVar = new something.Something({
content: 'This text has to be found<br /><table></table>',
size: 230
)};
....
</script>

不知道JS变量的名称,只能根据This text has to be found查找片段/字符串。后来验证确实是一个JS变量,然后我要取值<br /><table></table>为了遍历它。

最佳答案

一种方法是使用javascript 解析器 slimit 在这种情况下。思路是找到所有脚本标签,遍历它们,解析代码,遍历语法树,检查每个赋值节点右边是否有你要找的文本:

from bs4 import BeautifulSoup
from slimit import ast
from slimit.parser import Parser
from slimit.visitors import nodevisitor

data = """
<script>
var someVar = new something.Something({
content: 'This text has to be found<br /><table></table>',
size: 230
});
</script>
"""
text_to_find = 'This text has to be found'

soup = BeautifulSoup(data)

for script in soup.find_all('script'):
parser = Parser()
tree = parser.parse(script.text)
for node in nodevisitor.visit(tree):
if isinstance(node, ast.Assign):
value = getattr(node.right, 'value', '')
if text_to_find in value:
print value

打印 'This text has to be found<br /><table></table>' .

我不确定它是否完全符合您的需求,但希望这至少是一个开始。

另见:

关于javascript - 使用 BeautifulSoup 查找具有特定字符串的 JavaScript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28126852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com