Python: синтаксический анализ HTML с BeautifulSoup - PullRequest
0 голосов
/ 04 марта 2011
<a href="/watch?gl=US&amp;client=mv-google&amp;hl=en&amp;v=0C_yXOhJxWg">Miss Black OCU 2011</a> 

Моя программа читает html-файл, а над ним находится фрагмент этого файла. Я хочу захватить Miss Black OCU 2011, используя BeautifulSoup в Python. Есть предложения?

Ответы [ 2 ]

0 голосов
/ 09 февраля 2013

Если атрибут href следует буквальному шаблону, например href = "... watch ..." Вы можете легко решить проблему с помощью регулярного выражения.

import re
from bs4 import BeautifulSoup
response = """<a href="/watch?gl=US&amp;client=mv-google&amp;hl=en&amp;v=0C_yXOhJxWg">Miss Black OCU 2011</a>""" 
# the response should might be the urlreponse object if you search through a whole html page
soup = BeautifulSoup(response)
print soup.find("a", {"href":re.compile(".*watch.*")}).text

Вывод выглядит так:

Miss Black OCU 2011

Весь смысл найти шаблон регулярного выражения. Более подробную информацию о ре, нажмите здесь http://docs.python.org/2/library/re.html:

0 голосов
/ 03 октября 2011

Предлагаю посмотреть на атрибуты класса Tag и NavigableString

text = """<a href="/watch?gl=US&amp;client=mv-google&amp;hl=en&amp;v=0C_yXOhJxWg">Miss Black OCU 2011</a>"""
soup = BeautifulSoup(text)
print soup.find('a').text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...