现在我想从html输出中获得session_key。

请让我知道,我怎样才能在html中获得变量?

3 个评论
你都试过什么?你是否检查过图书馆,如 美丽的汤 ?
你可以尝试用r "session_key=['|/"]{1}([0-9a-zA-Z]{1,})['|/"]{1}"对html字符串进行重构,检索出组1
@benjababe, 虽然在一些非常有限的情况下,regex可能会起作用,但它是 最好不要用regex来解析HTML .但你可以使用regex,一旦标签中的文本被提取出来,就可以获得特定的值。
python
html
beautifulsoup
python-requests
python-requests-html
Moses
Moses
发布于 2021-12-22
3 个回答
Y. Georgiev
Y. Georgiev
发布于 2021-12-22
已采纳
0 人赞同

你可以用RegEx来解析它。

import re
regex = re.compile(".*?session_key\=\'(\S+)\'")
session_key = regex.search(r.text).group(1)

在这里你可以进一步测试正则表达式。RegExr

在这里你可以找到一些关于search()方法的文档。re docs

Xu Qiushi
Xu Qiushi
发布于 2021-12-22
0 人赞同

Trye this:

import re
from bs4 import BeautifulSoup
test_html = f"""
<script>
var session_key='d2e08508d3';
</script>
<script>
var temporary_data='01';
</script>
</body>
</html>
soup = BeautifulSoup(test_html)
session_key = re.findall(r"session_key='(.*?)'", soup.find("script").text)[0]
print(session_key)
    
év3v
év3v
发布于 2021-12-22
0 人赞同

根据这个答案,: 在Python中使用BeautifulSoup获取HTML源中的JS var值

你可以做到这一点。

from bs4 import BeautifulSoup
from slimit import ast
from slimit.parser import Parser
from slimit.visitors import nodevisitor
data = """<html>
<script>
var session_key='d2e08508d3';
</script>
<script>
var temporary_data='01';
</script>
</body>
</html>"""
soup = BeautifulSoup(data, "html.parser")
script = soup.find("script", text=lambda text: text and "var session_key" in text)
parser = Parser()
tree = parser.parse(script.text)