Мне нужно проверить выгруженный 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 это действительно проще...
Вы можете использовать регулярное выражение с чередованием, чтобы проверить, присутствует ли какое-либо ключевое слово в тексте ввода. Просто присоедините ключевые слова с чередованием вместе.
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"