目标:
我的目标是在生成有效负载后立即在div class="alert-info"
之间获取数据/文本
<div class="alert-info col-lg-12 wrapped">data</div>
背景:
我已成功将数据发布到本地服务器URL中,并且它在同一URL中返回/生成了有效负载。现在,我的下一步是将特定的有效负载存储在变量中。在生成有效负载之前和之后,URL保持不变
故障排除:
在生成有效载荷之前检查元素是:
<div class="alert-info col-lg-12 wrapped"></div>
生成有效载荷后检查元素:
<div class="alert-info col-lg-12 wrapped">DATA</div>
代码:
import requests
from bs4 import BeautifulSoup
#This data will post to the URL
login_data1 = {
'ABC':'ZYZ'}
with requests.Session() as s:
url = 'http://localhost/'
r = s.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
login_data1['App'] = soup.find('input', attrs={'name': 'AppKey'})['value']
d = s.post(url, params=login_data1) # , data=login_data,
print(r.text.strip())
# Till here, payload is generated and I can see it in <div class="alert-info col-lg-12 wrapped">data</div>
#Tries - Not Succeeded
soup = BeautifulSoup(r.content, 'html.parser')
Payload = soup.findAll('span', {"class":"alert-info"}).decode_contents()
print(Payload)
我们如何实现它?使用内部/外部HTML,CSS选择器?
答案 0 :(得分:0)
如果是这种情况,则不确定是否要从标签中提取文本,
假设r
是<div class="alert-info col-lg-12 wrapped">DATA</div>
soup = BeautifulSoup('<div class="alert-info col-lg-12 wrapped">DATA</div>', 'html.parser')
Payload = soup.findAll('div', {"class":"alert-info"})
print(Payload[0].string)
结果:
DATA
如果您需要将findAll
放在一个范围内,请确保为每个元素迭代获取.string
以获取内部文本。
文档链接:.string
如果您需要其他说明,请确保您要对问题添加示例回答。
答案 1 :(得分:0)
@sundeep 非常感谢您的大力支持和帮助。在这里发布答案。 使用类“ col-lg-1”代替“ alert-info”
url = 'URL'
r = s.get(url)
resp = BeautifulSoup(r.content, 'html.parser')
# print(resp.prettify())
Payload = resp.findAll('div', {"class":"col-lg-12"})[0].text
print(Payload)