Питон красивый суп извлечения URL и имя - PullRequest
0 голосов
/ 26 февраля 2011
<a href="/browse.php?cat=67" class="bb_a">2057: Discovery<br><span>(2057: Discovery channel)</span></a>
<a href="/browse.php?cat=36" class="bb_a">The 4400<br><span>(The 4400)</span></a>

<a href="/browse.php?cat=47" class="bb_a">Aqua<br><span>(Aquaman)</span></a>

Как мне разобрать вышеприведенную строку?

Я хочу получить URL-адреса и имена в списке, подобном следующему:

[["2057", "The 4400", "Aquaman"], 
 ["/browse.php?cat=67", "/browse.php?cat=36", "/browse.php?cat=47"]]

Используя приведенный ниже код, я уже могу разобрать URL

i = 0
for incident in soup.findAll('a'):
    if ("browse.php?" in soup('a')[i]['href']):
        print (soup('a')[i]['href'])
        print soup('a')[i]['class']
    i = i + 1;

1 Ответ

0 голосов
/ 26 февраля 2011
#!/usr/bin/env python
from BeautifulSoup import BeautifulSoup
body = """
<a href="/browse.php?cat=67" class="bb_a">2057: Discovery<br><span>(2057: Discovery channel)</span></a>
<a href="/browse.php?cat=36" class="bb_a">The 4400<br><span>(The 4400)</span></a>

<a href="/browse.php?cat=47" class="bb_a">Aqua<br><span>(Aquaman)</span></a>
"""

soup = BeautifulSoup(body)
i = 0
for incident in soup.findAll('a'):
    if ("browse.php?" in soup('a')[i]['href']):
        print (soup('a')[i]['href'])
        print soup('a')[i]['class']
        print soup('a')[i].contents # Pick out contents of the tag.
    i = i + 1;

Производит:

/browse.php?cat=67
bb_a
[u'2057: Discovery', <br />, <span>(2057: Discovery channel)</span>]
/browse.php?cat=36
bb_a
[u'The 4400', <br />, <span>(The 4400)</span>]
/browse.php?cat=47
bb_a
[u'Aqua', <br />, <span>(Aquaman)</span>]

Вы должны иметь возможность массировать soup('a')[i].contents результат в форму, которую вы можете использовать.

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