Я планирую перенести один из моих скребок на Python. Мне удобно использовать preg_match
и preg_match_all
в PHP. Я не нашел подходящую функцию в Python, похожую на preg_match
. Может ли кто-нибудь помочь мне в этом?
Например, если я хочу получить контент между <a class="title"
и </a>
, я использую следующую функцию в PHP:
preg_match_all('/a class="title"(.*?)<\/a>/si',$input,$output);
Если в Python я не могу найти подобную функцию.
Вы ищете модуль python re .
Взгляните на re.findall и re.search .
И, как вы уже упоминали, вы пытаетесь проанализировать html для использования html parsers
. Есть пара опций, доступных в python, таких как lxml или BeautifulSoup .
Взгляните на это. Почему вы не должны анализировать html с регулярным выражением
Вам может быть интересно узнать о регулярных операциях выражения Python
Я думаю, вам нужно что-то вроде этого:
output = re.search('a class="title"(.*?)<\/a>', input, flags=re.IGNORECASE) if output is not None: output = output.group(0) print(output)
вы можете добавить (? s) в начале регулярного выражения, чтобы включить многострочный режим:
output = re.search('(?s)a class="title"(.*?)<\/a>', input, flags=re.IGNORECASE) if output is not None: output = output.group(0) print(output)