Обобщенное извлечение текста из веб-страниц с использованием регулярных выражений и Python - PullRequest
0 голосов
/ 03 марта 2012

Мне нужно извлечь текст из любого вида веб-страницы с помощью регулярных выражений в Python.Мой код отлично работает с HTML-тегами, но из-за неправильного синтаксиса тегов и атрибутов, заключенных между тегами сценария, код, который я разработал, извлекает некоторые данные сценариев в дополнение к полезному тексту.Есть ли способ избежать этого?

def TextExtract():  
    page=urllib.urlopen(URL).read()    
    print "TEXT: "  
    for m in re.finditer("(?#extracts <TAG>TEXT till next <)(?s)<(?=[^!--]).+?>.*?(?=<)",page):  
        if(m!=None):  
            ##print m.group(),"\n"  
            l=re.search("(?#extracts TEXT between > and <)(?s)(?<=>).*",m.group())  
            n=re.search("(?#discards script and style tags)(?s)(<style.*)|(<script.*)",m.group())  
            if(n==None):  
                print l.group()  

1 Ответ

0 голосов
/ 03 марта 2012

Не анализировать HTML с регулярным выражением .Вместо этого используйте популярную библиотеку Python lxml.html .

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