Обработка HTML файлов Python - PullRequest
       16

Обработка HTML файлов Python

0 голосов
/ 09 января 2012

Я мало что знаю о html ... Как удалить только текст со страницы? Например, если HTML-страница читается как:

<meta name="title" content="How can I make money at home online? No gimmacks please? - Yahoo! Answers">
<title>How can I make money at home online? No gimmicks please? - Yahoo! Answers</title>

Я просто хочу извлечь это.

How can I make money at home online? No gimmicks please? - Yahoo! Answers

Я использую функцию re:

def striphtml(data):
  p = re.compile(r'<.*?>')
  return p.sub(' ',data)

но все же он не делает то, что я намерен сделать ..?

Вышеуказанная функция называется:

for lines in filehandle.readlines():

        #k = str(section[6].strip())
        myFile.write(lines)

        lines = striphtml(lines)
        content.append(lines)

Ответы [ 3 ]

2 голосов
/ 09 января 2012

Используйте для этого html-парсер. Можно было бы BeautifulSoup

Чтобы получить текстовое содержимое страницы:

 from BeautifulSoup import BeautifulSoup


 soup = BeautifulSoup(your_html)
 text_nodes = soup.findAll(text = True)
 retult = ' '.join(text_nodes)
2 голосов
/ 09 января 2012

Не используйте регулярные выражения для разбора HTML / XML.Попробуйте http://www.crummy.com/software/BeautifulSoup/ вместо.

from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup('Your resource<title>hi</title>')
soup.title.string # Your title string.
1 голос
/ 09 января 2012

Я обычно использую http://lxml.de/ для разбора html! он действительно прост в использовании, и для получения тегов вы можете использовать для него xpath! что просто и быстро, и просто.

У меня есть пример использования в скрипте, который я сделал, чтобы прочитать XML-ленту и посчитать слова:

https://gist.github.com/1425228

Также вы можете найти больше примеров в документации: http://lxml.de/lxmlhtml.html

...