Как я могу добавить Google-подобный повторный просмотр в моем приложении (веб или консоль)
Как я могу принести google-подобный повторный просмотр в моем приложении (веб или консоль). Мне нужно перечитать только те страницы, которые обновляются после определенной даты.
Заголовок LastModified в System.Net.WebResponse дает только текущую дату сервера. Например, если я скачал одну страницу с HTTPWebRequest 27 января 2012 года и проверил заголовок даты LastModified, он показывает текущее время сервера, когда была обработана страница. В этом случае это только 27 января 2012 года.
Кто-нибудь может предложить какие-либо другие методы?
1 ответ
Во-первых, здесь необходимо отметить, что то, что вы пытаетесь сделать, очень сложно, и есть множество исследовательских работ, которые пытаются решить эту проблему (я дам вам ссылки на некоторые из них чуть позже). Невозможно увидеть, изменился ли сайт, не просматривая его, хотя у вас могут быть ярлыки, такие как проверка длины содержимого из заголовка ответа без загрузки остальной части страницы. Это позволит вашей системе сэкономить на трафике, но не решит вашу проблему действительно полезным способом.
Во-вторых, так как вы обеспокоены содержанием, то Last-Modified
поле заголовка не будет очень полезным для вас, и я бы даже сказал, что оно не будет полезным вообще.
И в-третьих, то, что вы описываете, имеет несколько противоречивые требования, потому что вы заинтересованы в сканировании только страниц, которые обновили контент, и это не совсем то, как Google делает вещи (тем не менее, вы хотите сканировать, как в Google). Сканирование Google направлено на предоставление самого свежего контента для наиболее часто посещаемых / посещаемых веб-сайтов. Например: Google очень мало интересуется частым сканированием веб-сайта, который обновляет свое содержание два раза в день, когда на этом сайте 10 посетителей в день, вместо этого Google больше заинтересован в сканировании веб-сайта, который получает 10 миллионов посетителей в день, даже если его контент обновляется. менее часто. Также может быть верно, что веб-сайты, которые часто обновляют свой контент, также имеют много посетителей, но с точки зрения Google это не совсем актуально.
Если вам нужно открывать новые веб-сайты (охват) и в то же время вы хотите получать новейшее содержание сайтов, о которых вы знаете (свежесть), тогда у вас есть противоречивые цели (что справедливо для большинства сканеров, даже Google). Обычно в итоге получается, что когда у вас больше охвата, у вас меньше свежести и если у вас больше свежести, то у вас меньше покрытия. Если вы заинтересованы в балансе обоих, я предлагаю вам прочитать следующие статьи:
- Web Crawler: обзор
- После этого я бы порекомендовал прочитать адаптивное онлайн-вычисление важности страницы.
- И наконец: масштабирование до 6 миллиардов страниц и далее
Суть идеи заключается в том, что вам нужно сканировать веб-сайт несколько раз (может быть, несколько сотен раз), чтобы вы могли составить хорошую оценку его истории. Когда у вас есть хороший набор исторических показателей, вы используете прогнозную модель для интерполяции, когда веб-сайт снова изменится, и вы планируете сканирование в течение некоторого времени после ожидаемого изменения.