BeautifulSoup – получение всех элементов, содержащих подстроку в тексте, с использованием регулярного выраженияPython

Программы на Python
Anonymous
BeautifulSoup – получение всех элементов, содержащих подстроку в тексте, с использованием регулярного выражения

Сообщение Anonymous »


Как мне заставить суп.find_all возвращать список всех элементов tr, содержащих даты (используя для этого строку регулярного выражения)?

Я создал для этого строку регулярного выражения, и она успешно соответствует (например, я пытался получить все элементы tr и впоследствии сопоставить текст, и это работает - даже с полной строкой регулярного выражения), однако при попытке получить только элементы, содержащие даты (с использованием string=re.compile) мой код не работает. Я ожидал, что приведенный ниже код вернет правильные элементы, но он вообще ничего не возвращает. Я что-то делаю не так?
из импорта bs4 BeautifulSoup импортировать повторно reDates = r"((?:[1-2][0-9])|(?:0{0,1}[1-9])|(?:3[0-1]))(?: /|-|\.)((?:0{0,1}[1-9])|(?:1[0-2]))(?:/|-|\.)(?:20) {0,1}((?:2[3-9])|[3-9][0-9])" reDateLine = r"(^.*?" + reDates + r".*$)" защита от царапин (страница): суп = BeautifulSoup(страница, 'html.parser') elems = суп.find_all("tr", string=re.compile(reDateLine)) для таблицы в элементах: печать(таблица.текст) с open("page.html", "r") как f: царапина(ф)

Вернуться в «Python»