2017-06-19 6 views
0

私はzabbixのホームページのコンテンツを入手しようとしました。Beautifulsoupは特殊文字を含むコンテンツを認識しません。zabbixからのコンテンツ

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\"'>のように見えることに気づいたので、そこに2つ(\「)があり、TDの内側とBSがそれを認識することはできません。私は\を削除しようとしました」と、動作しているようですページ全体にはこのような文字が多く含まれています。それらを置き換えると、いくつかの他の問題が発生します。 はまた、私が代わりに得ることはありません最後に、私は私が'<td>',</td>,のようなまともなフォーマットを取得し、私が望むコンテンツを取得することができますどのように&lt;\/td&gt;

任意のアイデアを得ました。私はちょうど 'ボリューム/データで10%未満の空きディスク容量'と 'ELK211'が必要です。 lxmlをhtml.parserに置き換えようとしましたが、それは同じです。

+0

をあなたが同様にURLを提供することができますか? –

答えて

0

二重引用符はクラス名の一部です。あなたのコードのようなものに変更します

soup.findAll('td', class_='"average-bg"'}) 

または

soup.findAll('td',{'class':'"average-bg"'}) 
+0

二重引用符とは関係ありません。これは、BSがクラスを認識するのを止める「/」です。そして、zabbixは私が単に私が望むコンテンツをフィルタリングするbsを使うことができない唯一のケースと思われます。とにかくありがとうございました。 –

関連する問題