манипулирование значением содержимого строки в html-файле с помощью Beautifulsoup - PullRequest
0 голосов
/ 18 февраля 2011

Люди

Я новичок в Python и BeautifulSoup - поэтому, пожалуйста, потерпите меня. Я пытаюсь сделать html-разбор.

Я хотел бы удалить символы новой строки и компактные пробелы из выбранных атрибутов (на основе поиска строки в файле html.

Например, для следующего html я хотел бы найти все теги со строковым атрибутом «xy», а затем удалить из этой строки символы новой строки и несколько пробелов (заменить на один пробел.

<html>   
    <head></head>   
    <body>
    <h1>xy
        z</h1>
    <p>xy
        z</p>
    <div align="center" style="margin-left: 0%; ">
      <b>
       <font style="font-family: 'Times New Roman', Times">
        ab    c
       </font>
       <font style="font-family: 'Times New Roman', Times">
        xy    z
       </font>
      </b>
     </div>  
    </body> 
</html>

Полученный HTML должен выглядеть так:

<html>   
  <head></head>   
  <body>
    <h1>xy z</h1>
    <p>xy z</p>
    <div align="center" style="margin-left: 0%; ">
      <b>
       <font style="font-family: 'Times New Roman', Times">
        ab    c
       </font>
       <font style="font-family: 'Times New Roman', Times">
        xy z
       </font>
      </b>
     </div>   
  </body> 
</html>

1 Ответ

0 голосов
/ 18 февраля 2011

ОК - я нашел способ сделать это ... Вы используете findall, а затем используете метод replaceWith (), как показано ниже.

......... soup = BeautifulSoup (содержимое) s = soup.findAll (text = re.compile ("xy"))
для s1 в s:
s1.replaceWith (re.sub ('\ s +', '', str (s1)))
...........

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...