Проверьте несколько строк (из файла) в отношении текста HTML с Python

1

Мне нужно проверить выгруженный HTML-документ на несколько строк из текстового файла в Python. Иными словами, Паук должен выяснить, содержит ли текст html любую из заданных строк.

    url = 'http://forum.unisoftdev.com'
    request = urllib2.Request(url)
    response = urllib2.urlopen(request)
    html = response.read()


    with open('keywords.txt') as f:
        key_words = f.readlines()

    # here the nut:
    if key_words in html :
        # do something

Я не хочу никаких "elif" и "else", потому что мне это нужно в текстовом файле, поэтому мне нужно проверить документ на несколько строк, но не знаю, как это сделать в Python. В PHP это действительно проще...

Теги:
string
arrays
find
scrapy-spider

1 ответ

1

Вы можете использовать регулярное выражение с чередованием, чтобы проверить, присутствует ли какое-либо ключевое слово в тексте ввода. Просто присоедините ключевые слова с чередованием вместе.

pattern = "|".join(r'{}'.format(word) for word in key_words)

Если вам не нужны подстрочные совпадения, например, omegaforce omega, то вам нужно будет добавить границы слов:

pattern = "|".join(r'\b{}\b'.format(word) for word in key_words)

Образец кода:

import re
html = 'I have lots of deltas but no omegas'
key_words = ['alpha', 'omega','delta']
pattern = "|".join(r'{}'.format(word) for word in key_words)
rx = re.compile(pattern)
if rx.search(html):
    # do something
    print "found"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню