首页 > 解决方案 > 如何在变量中管理 HTML 代码?

问题描述

您好,我在管理变量内的 html 代码时遇到问题。

我想制作一个在网站上登录帐户的程序,然后检查特定位置的某些内容是否发生了变化,如果发生了变化,请给我发送电子邮件或某种通知。

import requests
from bs4 import BeautifulSoup as bs

tab = []


payload = {
    'plates': 'login',
    'vin': 'password'
}

with requests.Session() as s:
    p = s.post('url', data=payload)

    print (p.text)


soup = bs(p.text,'html.parser')

body = soup.find_all("li",{"class" : "state"},"span")


a = body[2]
print (a)

p.text 是整个 html 代码

身体看起来像这样

[<li class="state first">
<p><span>Przyjęto wniosek, trwa postępowanie administracyjne</span></p>
<img class="arrow" src="//cdn.info-car.pl/webfiles/1590137977316/img/document/selected_status.png"/>
</li>, <li class="state active">
<p><span>Dokument został zamówiony</span></p>
<img class="arrow" src="//cdn.info-car.pl/webfiles/1590137977316/img/document/selected_status_active.png"/>
</li>, <li class="state">
<p><span>Dokument do odbioru w urzędzie</span></p>
<img class="arrow" src="//cdn.info-car.pl/webfiles/1590137977316/img/document/selected_status.png"/>
</li>, <li class="state last">
<p><span>Dokument wydany</span></p>
<img class="arrow" src="//cdn.info-car.pl/webfiles/1590137977316/img/document/selected_status.png"/>
</li>]

身体 [2] 看起来像这样:

<li class="state">
<p><span>Dokument do odbioru w urzędzie</span></p>
<img class="arrow" src="//cdn.info-car.pl/webfiles/1590137977316/img/document/selected_status.png"/>
</li>

现在我的计划是仅从src="//cdn.info-car.pl/webfiles/1590137977316/img/document/selected_status.png"/>body[2]中选择

然后将其与另一个包含相同文本的变量进行比较(我从网络上抓取的 body[2] 中的变量希望有一天会改变)

如果这两个变量不一样,那就做点什么(我想我会处理消息部分)

我只是不知道如何选择我想要的部分。像字符串一样管理它很困难,因为所有这些怪异的字符(<、>、、'、/)等。

我想我希望我的最终解决方案是这样的

if The_part_I_want == The old html code:
    pass
else:
    send me a notification  

标签: pythonhtmlstringauthenticationweb-scraping

解决方案


搜索带有in的img元素并获取其属性。class=arrowbody[2]src

the_old_url = "//cdn.info-car.pl/webfiles/1590137977316/img/document/selected_status.png"
img = body[2].find('img', class_='arrow')
if img and img['src'] == the_old_url:
    pass
else:
    send_notification()

推荐阅读