Я учусь создавать веб-страницы с помощью Python, используя статью в Wikepedia.Мне удалось получить нужные мне данные, таблицы, используя метод .get_text () для строк таблицы ().
Я очищаю данные в Pandas, и одна из процедур включает получение датыкнига или фильм был опубликован.Так как это может происходить многими способами, например: (1986) (1986-1989) (1986-настоящее время)
В настоящее время я использую приведенный ниже код, который работает с тестовым предложением:
# get the first columns of row 19 from the table and get its text
test = data_collector[19].find_all('td')[0]
text = test.get_text()
#create and test the pattern
pattern = re.compile('\(\d\d\d\d\)|\(\d\d\d\d-\d\d\d\d\)|\(\d\d\d\d-[ Ppresent]*\)')
re.findall(pattern, 'This is Agent (1857), the years were (1987-1868), which lasted from (1678- Present)')
Я получаю ожидаемый результат в тестовом предложении.
['(1857)', '(1987-1868)', '(1678- Present)']
Однако, когда я проверяю его на определенном фрагменте текста из статьи вики ' Приключения Шерлока Холмса(1891–1892) (серия), (1892) (роман), Артур Конан Дойл \ n ', я могу извлечь (1892), но НЕ (1891-1892).
text = test.get_text()
re.findall(pattern, text)
o/p: ['(1892)']
Даже когда я набираю это, я вижу, что дефис, который я использую, и дефис в тексте отличаются.Я уверен, что это проблема, и надеялся, что кто-нибудь скажет мне, как называется этот конкретный символ и как я могу «напечатать» его с помощью клавиатуры.
Спасибо!