Beautifulsoup无法识别带有特殊字符的内容。来自zabbix的内容

2024-04-25 13:59:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着获取zabbix主页的内容,在那里有一个叫做Last20Issues的部分。你知道吗

import re
some_page=session.get(url,headers=header).content
soup=BeautifulSoup(some_page,'lxml')
print soup.findAll('td',{'class':'average-bg'})

soup is as following
<td><span class='\"link-action\"' data-menu-popup='\"{"type":"host","hostid":"10457","showGraphs":true,"showScreens":true,"showTriggers":true,"hasGoTo":true,"scripts":[{"name":"Detect' operating="" system&quot;,&quot;scriptid&quot;:&quot;3&quot;,&quot;confirmation&quot;:&quot;&quot;},{&quot;name&quot;:&quot;ping&quot;,&quot;scriptid&quot;:&quot;1&quot;,&quot;confirmation&quot;:&quot;&quot;},{&quot;name&quot;:&quot;traceroute&quot;,&quot;scriptid&quot;:&quot;2&quot;,&quot;confirmation&quot;:&quot;&quot;}]}\"="">ELK211&lt;\/span&gt;&lt;\/td&gt;<td class='\"average-bg\"'><span #00aa00&quot;&gt;ok&lt;\\\="" #dc0000&quot;&gt;problem&lt;\\\="" &quot;&quot;,="" &quot;max-width:="" '&lt;div&gt;&lt;table="" 00:15:36&lt;\\\="" 01:40:36&lt;\\\="" 01:44:36&lt;\\\="" 01:51:36&lt;\\\="" 04:07:36&lt;\\\="" 06:56:36&lt;\\\="" 08:02:36&lt;\\\="" 08:45:36&lt;\\\="" 09:15:36&lt;\\\="" 09:58:36&lt;\\\="" 10:11:36&lt;\\\="" 10d="" 10h&lt;\\\="" 11:59:36&lt;\\\="" 11h="" 11h&lt;\\\="" 12:39:36&lt;\\\="" 12d="" 12h="" 12h&lt;\\\="" 12m&lt;\\\="" 13:37:36&lt;\\\="" 13h&lt;\\\="" 14h="" 15m&lt;\\\="" 16d="" 16m&lt;\\\="" 17:58:36&lt;\\\="" 17h&lt;\\\="" 17m&lt;\\\="" 18d="" 19d="" 19h="" 19m&lt;\\\="" 1h&lt;\\\="" 20d="" 21:30:36&lt;\\\="" 22:18:36&lt;\\\="" 22:49:36&lt;\\\="" 22h="" 22h&lt;\\\="" 23:58:36&lt;\\\="" 23:58:37&lt;\\\="" 23h="" 25m&lt;\\\="" 26m&lt;\\\="" 2d="" 2h&lt;\\\="" 30m="" 32m&lt;\\\="" 39s&lt;\\\="" 3h="" 3h&lt;\\\="" 40m&lt;\\\="" 47m&lt;\\\="" 4h&lt;\\\="" 4m&lt;\\\="" 500px&quot;);\"="" 56m&lt;\\\="" 57m&lt;\\\="" 58m&lt;\\\="" 59m="" 59s&lt;\\\="" 6h="" 6m&lt;\\\="" 7h&lt;\\\="" 8m&lt;\\\="" 9h&lt;\\\="" 9m&lt;\\\="" class='\"link-action\"' false,="" href="&quot;zabbix.php?action=acknowledge.edit&amp;eventids[]=2174204&amp;backurl=zabbix.php%3Faction%3Ddashboard.view&quot;&gt;No&lt;\\\/a&gt;&lt;\\\/td&gt;&lt;\\\/tr&gt;&lt;\\\/tbody&gt;&lt;\\\/table&gt;&lt;\\\/div&gt;'," id='"t5947401f69c53"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Time&lt;\\\/th&gt;&lt;th&gt;Status&lt;\\\/th&gt;&lt;th&gt;Duration&lt;\\\/th&gt;&lt;th&gt;Age&lt;\\\/th&gt;&lt;th&gt;Ack&lt;\\\/th&gt;&lt;\\\/tr&gt;&lt;\\\/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;2017-06-18' onclick='\"hintBox.showStaticHint(event,' onmouseover='\"hintBox.HintWraper(event,' red&quot;="" span&gt;&lt;\\\="" style='"color:' td&gt;&lt;td&gt;&lt;a="" td&gt;&lt;td&gt;&lt;span="" td&gt;&lt;td&gt;11d="" td&gt;&lt;td&gt;12d="" td&gt;&lt;td&gt;1d="" td&gt;&lt;td&gt;1h="" td&gt;&lt;td&gt;1m="" td&gt;&lt;td&gt;21h="" td&gt;&lt;td&gt;27d="" td&gt;&lt;td&gt;28d="" td&gt;&lt;td&gt;29d="" td&gt;&lt;td&gt;2h="" td&gt;&lt;td&gt;2m="" td&gt;&lt;td&gt;3d="" td&gt;&lt;td&gt;3h="" td&gt;&lt;td&gt;48m&lt;\\\="" td&gt;&lt;td&gt;4m&lt;\\\="" td&gt;&lt;td&gt;6h="" td&gt;&lt;td&gt;7d="" td&gt;&lt;td&gt;7m&lt;\\\="" td&gt;&lt;td&gt;8h="" td&gt;&lt;td&gt;9h="" this,="">Free disk space is less than 10% on volume \/data&lt;\/span&gt;&lt;\/td&gt;

我注意到这个类看起来像<td class='\"average-bg\"'>,所以td中有两个(\”),BS无法识别它。我试图删除\“,这似乎是工作,但整个网页包含了这样的字符很多。替换它们会导致其他一些问题。 最后,我没有得到答案,而是得到了&lt;\/td&gt;

你知道我怎样才能得到像'<td>',</td>,这样的格式并得到我想要的内容吗。实际上,我只需要“卷/数据的可用磁盘空间少于10%”和“ELK211”。 我试着用html.parser语法分析器,但都是一样的。你知道吗


Tags: nameltgttrueactiontrclasstd