python - 如何在变量中管理 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
解决方案
搜索带有in的img
元素并获取其属性。class=arrow
body[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()
推荐阅读
- java - 包名称是否必须与项目的工件的 groupId 相同?
- python - 如何在python中动态设置ssh隧道?
- java - FirebaseRecyclerAdapter 不能使用两个选项
- python - Python tkinter 将 .exe 文件添加到程序内部的框架中
- unit-testing - 我对 axios 方法的测试用例说返回类型是匿名函数
- javascript - 如何将事件作为属性添加到元素
- json - 如果键未知,如何选择嵌套键
- html - CSS 边框的 Google Maps API 问题:对;
- angular - 与 mat-icon-button 一起使用时,matTooltip 无法始终如一地工作
- php - Laravel/HTML - 为每个表格行中的每个获取分配的 ID