Невозможно получить правильную ссылку в BeautifulSoup - PullRequest
3 голосов
/ 23 июля 2010

Я пытаюсь разобрать немного HTML, и я хотел бы извлечь ссылку, которая соответствует определенному шаблону.Я использую метод find с регулярным выражением, но он не дает мне правильную ссылку.Вот мой фрагмент.Может кто-нибудь сказать мне, что я делаю неправильно?

from BeautifulSoup import BeautifulSoup
import re

html = """
<div class="entry">
    <a target="_blank" href="http://www.rottentomatoes.com/m/diary_of_a_wimpy_kid/">RT</a>
    <a target="_blank" href="http://www.imdb.com/video/imdb/vi2496267289/">Trailer</a> &ndash; 
    <a target="_blank" href="http://www.imdb.com/title/tt1196141/">IMDB</a> &ndash; 
</div>
"""

soup = BeautifulSoup(html)
print soup.find('a', href = re.compile(r".*title/tt.*"))['href']

Я должен получить вторую ссылку, но BS всегда возвращает первую ссылку.href первой ссылки даже не соответствует моему регулярному выражению, так почему оно возвращает его?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 23 июля 2010

find возвращает только первый тег <a>.Вы хотите findAll.

0 голосов
/ 23 июля 2010

Не могу ответить на ваш вопрос, но в любом случае ваш (изначально) опубликованный код имеет опечатку при импорте. Изменение

import BeautifulSoup

до

from BeautifulSoup import BeautifulSoup

Тогда ваш вывод (с использованием Beautifulsoup версии 3.1.0.1) будет:

http://www.imdb.com/title/tt1196141/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...