Как бы вы решили эту проблему?
Вы просматриваете HTML блогов. Часть HTML-кода блога - это сообщения блога, некоторые из них - форматирование, боковые панели и т. Д. Вы хотите иметь возможность определить, какой текст в HTML-документе принадлежит какому-либо сообщению (то есть постоянная ссылка), если он есть.
Я знаю, о чем вы думаете: вы можете просто посмотреть RSS и полностью игнорировать HTML! Тем не менее, RSS очень часто содержит только очень короткие выдержки или удаляет ссылки, которые могут вас заинтересовать. Вы хотите по существу победить выдержку RSS, используя вместе HTML и RSS одной и той же страницы.
Запись RSS выглядит так:
title
excerpt of post body
permalink
Сообщение в блоге в HTML выглядит так:
title (surrounded by permalink, maybe)
...
permalink, maybe
...
post body
...
permalink, maybe
Таким образом, страница HTML содержит те же поля, но расположение постоянной ссылки заранее неизвестно, и поля будут разделены неким шумовым текстом, который в основном представляет собой HTML и пробел, но также может содержать некоторые дополнительные метаданные, такие как " отправил Джонни "или дата или что-то в этом роде. Текст также может быть немного отличен в HTML и RSS, как описано ниже.
Дополнительные правила / предостережения:
- Названия не могут быть уникальными. Это происходит чаще, чем вы думаете. Примеры, которые я видел: "Сводка новостей по понедельникам", "TGIF" и т. Д.
- Заголовки можно даже оставить пустыми.
- Выдержки в RSS также необязательны, но предполагается, что должен быть хотя бы непустой отрывок или непустой заголовок
- Отрывок RSS может содержать полный контент сообщения, но, скорее всего, содержит короткий отрывок начала тела сообщения
- Предположим, что постоянные ссылки должны быть уникальными и одинаковыми как в HTML, так и в RSS.
- Заголовок, выдержка и текст сообщения могут быть немного по-разному отформатированы в RSS и HTML. Например:
- У RSS может быть HTML внутри заголовка или разделенного тела, или на HTML-странице может быть добавлено больше HTML (например, окружение первой буквы тела сообщения чем-либо) или может быть отформатирован немного по-другому
- Текст может кодироваться немного по-другому, например, быть utf8 в RSS, в то время как символы не ascii в HTML всегда кодируются с использованием амперсанда. Однако предположим, что это текст на английском языке, где символы, отличные от ascii, встречаются редко.
- Там может быть плохо закодированная ужасность Windows-1252. Это часто случается с символами, такими как фигурные кавычки. Тем не менее, можно с уверенностью предположить, что большая часть текста является ascii.
- Там может быть складывание в любом направлении, особенно в заголовке. Таким образом, они могут использовать заглавные буквы на HTML-странице, но не в RSS.
- Число записей в ленте RSS и странице HTML не должно совпадать. Либо может быть больше или меньше старых записей. Мы можем ожидать только те сообщения, которые появляются в обоих.
- RSS может отставать. На странице HTML может появиться новая запись, которая пока не отображается в ленте RSS. Это может произойти, если RSS-канал распространяется через Feedburner. Опять же, мы можем ожидать разрешения только тех сообщений, которые появляются как в RSS, так и в HTML.
- Тело сообщения может быть очень коротким или очень длинным.
Точность
100% составляет , а не ограничение. Однако чем точнее, тем лучше.
Ну, что бы вы сделали?