Я не могу разобрать с помощью Beautiful Soup - PullRequest
0 голосов
/ 16 ноября 2010
<td>
<a name="corner"></a>
<div>
<div style="aaaaa">
<div class="class-a">My name is alis</div>
</div>
<div>
<span><span class="class-b " title="My title"><span>Very Good</span></span> </span>
<b>My Description</b><br />
          My Name is Alis I am a python learner...
        </div>
<div class="class-3" style="style-2 clear: both;">
          alis
        </div>
</div>
<br /></td>

Я хочу описание после очистки:

My Name is Alis I am a python learner...

Я много чего пробовал, но никак не мог понять это. Можете ли вы, ребята, дать общее решение для этого.

Ответы [ 2 ]

1 голос
/ 17 ноября 2010
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup("Your sample html here")
soup.td.div('div')[2].contents[-1]

Это вернет искомую строку (следует отметить строку Юникода с любым подходящим пробелом).

Это работает путем анализа html, получения первого тега td и его содержимого, захвата любых тегов div в первом теге div, выбора 3-го элемента в списке (индекс списка 2) и получения последнего его содержимого.

В BeautifulSoup существует множество способов сделать это, поэтому этот ответ, вероятно, многому вас не научил, и я искренне рекомендую вам прочитать учебник, предложенный Дэвидом.

0 голосов
/ 17 ноября 2010

Вы пробовали читать примеры, приведенные в документации?Быстрый запуск находится здесь http://www.crummy.com/software/BeautifulSoup/documentation.html#Quick Старт

Редактировать: Найти

Вы бы загрузили свой HTML через

 from BeautifulSoup import BeautifulSoup
 soup = BeautifulSoup("My html here")
 myDiv = soup.find("div", { "class" : "class-a" })

Также помните, что вы можетебольшая часть этого через консоль python, а затем с помощью dir () вместе с help () просматривают то, что вы пытаетесь сделать.Возможно, вам будет проще попробовать ipython или Python IDLE с очень удобными консолями для начинающих.

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