Python 请求打印 HTML 响应变量
Python Requests print HTML response variable
我使用下面的脚本从服务器获取临时代码
import requests
from bs4 import BeautifulSoup
payload{
'username':'demo',
'password':'demo'
}
with requests.session() as s:
r= s.post(192.13.11.100,data=payload)
print(r.text)
脚本没有问题,
现在,我得到了预期的输出。
<html>
<body>
<script>
var session_key='d2e08508d3';
</script>
<script>
var temporary_data='01';
</script>
</body>
</html>
现在我想从 html 输出中获取 session_key。
请告诉我如何获取 html
中的变量
试试这个:
import re
from bs4 import BeautifulSoup
test_html = f"""
<html>
<body>
<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)
您可以使用 RegEx 解析它:
import re
regex = re.compile(".*?session_key\=\'(\S+)\'")
session_key = regex.search(r.text).group(1)
在这里你可以进一步测试正则表达式:RegExr
在这里您可以找到一些关于 search()
方法的文档:re docs
根据这个答案:
你可以的:
from bs4 import BeautifulSoup
from slimit import ast
from slimit.parser import Parser
from slimit.visitors import nodevisitor
data = """<html>
<body>
<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)
for node in nodevisitor.visit(tree):
if isinstance(node, ast.VarDecl) and node.identifier.value == 'session_key':
print(node.initializer.value)
请为他所做的工作奖励此答案:
我使用下面的脚本从服务器获取临时代码
import requests
from bs4 import BeautifulSoup
payload{
'username':'demo',
'password':'demo'
}
with requests.session() as s:
r= s.post(192.13.11.100,data=payload)
print(r.text)
脚本没有问题,
现在,我得到了预期的输出。
<html>
<body>
<script>
var session_key='d2e08508d3';
</script>
<script>
var temporary_data='01';
</script>
</body>
</html>
现在我想从 html 输出中获取 session_key。
请告诉我如何获取 html
中的变量试试这个:
import re
from bs4 import BeautifulSoup
test_html = f"""
<html>
<body>
<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)
您可以使用 RegEx 解析它:
import re
regex = re.compile(".*?session_key\=\'(\S+)\'")
session_key = regex.search(r.text).group(1)
在这里你可以进一步测试正则表达式:RegExr
在这里您可以找到一些关于 search()
方法的文档:re docs
根据这个答案:
你可以的:
from bs4 import BeautifulSoup
from slimit import ast
from slimit.parser import Parser
from slimit.visitors import nodevisitor
data = """<html>
<body>
<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)
for node in nodevisitor.visit(tree):
if isinstance(node, ast.VarDecl) and node.identifier.value == 'session_key':
print(node.initializer.value)
请为他所做的工作奖励此答案: