Я пытаюсь найти тег usin bs4, где текст находится в формате: «Firma: ...........». Проблема в том, что re.compile не работает для этого вообще. Я не могу понять, что я делаю.re.compile не работает должным образом
Вот код HTML:
<span class="date">
Firma:
<b>Agedr js</b>
</span>
Вот код, чтобы найти этот тег:
re.DOTALL
attributes = soup.findAll('span', class_='date')
for attribute in attributes:
if attribute == re.compile('Firma: .*'):
firma = attribute.text
print firma
Я полагаю, что я использую некоторые специальные символы в тексте «Фирма: «но я не могу найти его. Где может быть проблема?
EDIT: пути не работает:
Стараюсь re.compile('Firma.*')
.
re.DOTALL
переключатель if attribute == ...
, чтобы, если attribute.contents[0] == ...
О, я глуп, спасибо. Второй вариант, безусловно, будет работать. – Mill
Я только что понял, что я забыл написать «.text» после переменной «attribute»: «attribute.text == re.compile (« Firma:. * »):« Это тоже не сработало. Но attribute.text - это насколько мне известно, поэтому он должен работать, но это не так. – Mill
@Mill, Как я написал в ответе, это даст «Ложно». Регулярный шаблон выражения не предназначен для прямого сравнения с строкой с использованием '==' oeprator. Его следует сравнивать с помощью метода 'search',' match'. Или вы можете использовать 'findall',' finditer' для поиска совпадающих строк. – falsetru