1

文字列を html ページの内容と比較したい。ただし、HTML ページの特殊文字により、この比較が難しくなります。そのため、比較する前に、HTML ページからすべての特殊文字と空白を削除したいと考えています。ただし、すべてのタグは同じままにする必要があります。あれは

<div class="abc bcd">
         <div  class="inner1"> Hai ! this is first inner div;</div>
         <div class="inner2"> "this is second div... " </div>
</div>

これはに変換する必要があります

<div class="abc bcd">
          <div class="inner1">Haithisisfirstinnerdiv</div>
          <div class="inner2">thisisseconddiv</div>
</div>

これはどのように行うことができますか?

4

2 に答える 2

0

まず、SoBeautifulSoupを呼び出すときに壊れた HTML の一部を既に修正しています。BeautifulSoup()

<div  class="inner1"> 

に行く

<div class="inner1">

空白と特殊文字を取り除く方法は次のとおりです。

>>> from bs4 import BeautifulSoup
>>> html = """<div class="abc bcd">
     <div  class="inner1"> Hai ! this is first inner div;</div>
     <div class="inner2"> "this is second div... " </div>
</div>""" 
>>> soup = BeautifulSoup(html)
>>> for divtag in soup.findAll('div'):
...     if 'inner' in divtag['class'][0]:
...         divtag.string = ''.join(i for i in divtag.string if i.isalnum())
>>> print soup
<html><body><div class="abc bcd">
<div class="inner1">Haithisisfirstinnerdiv</div>
<div class="inner2">thisisseconddiv</div>
</div></body></html>
于 2013-05-12T04:32:59.083 に答える