Служба сравнения цен, как эффективно использовать файл карты сайта? - PullRequest
0 голосов
/ 11 июня 2011

Многие интернет-магазины предоставляют файл карты сайта, который содержит информацию о своих продуктах в виде:

...
    <url>
          <loc>http://blabla.com/tbcart/pc/-DOOR-GYM-Full-Body-Exerciser-256p34168.htm</loc>
          <lastmod>2010-11-26</lastmod>
          <changefreq>weekly</changefreq>
    </url>
...

Но для работы онлайн-службы сравнения цен необходимы фактические цены на товары в дополнение к их URL.,Предполагая, что типичная карта сайта для интернет-магазина содержит 20 000 URL-адресов, как бы вы действовали в получении фактических цен для каждого продукта?Это то, как карта сайта должна использоваться для получения цен на товары?

Весьма вероятно, что выполнение 20'000 запросов Http Get приведет к тому, что интернет-магазин заблокирует IP-адрес сканера:)

Спасибо,

PS - Какбудет этот масштаб?Как карта сайта с 50'000 ссылками, скажем, нужно переиндексировать каждое воскресенье, это подразумевает отправку 1 запроса каждые 2 секунды в течение всего дня. Как можно избежать блокировки в этой ситуации?

Ответы [ 2 ]

0 голосов
/ 11 июня 2011

Вам действительно нужно переиндексировать сайт каждое воскресенье? Кажется, в вашем примере есть набор тегов lastmod, так что вы можете просто просканировать весь сайт как базу и затем проверять наличие модифицированных страниц целую неделю (не только в один день). Если сайт был изменен, вы можете его заново просканировать, а затем установить задержку для следующей страницы в этом домене на значение в файле robots.txt (если установлено) или несколько секунд (5 уже может быть в порядке).

Однако, это работает только в том случае, если владелец магазина меняет lastmod-тег при изменении цены (а не только при изменении текста описания). Если lastmod не изменился, вы должны принять подход Хаукмана и измерить среднее время между изменениями на странице (если вы перечитываете страницу, а цена не изменилась, отложите следующее посещение; если оно изменилось, попробуйте еще немного быстрее в следующий раз).

0 голосов
/ 11 июня 2011

Вы должны выполнить GET для всех URL-адресов, а затем проанализировать HTML-код, чтобы получить цену. Вы правы в том, что если вы попадете на сайт со всеми их продуктами, они могут забанить вас, поэтому вам нужно включить некоторую умную логику, чтобы распределить нагрузку, чтобы это не оказало слишком большого влияния на магазин. И затем, если вам будет сложно, вы можете определить, есть ли какие-то продукты, цены на которые изменяются чаще, тогда вы можете просто пересмотреть цены этих продуктов. Также следует отметить, что не все сайты предоставляют карту сайта, и в этом случае вам необходимо сканировать сайт и анализировать HTML для URL-адресов продуктов (как это делают поисковые системы).

...