Получение позиции сайта в результатах поиска Google

Я хочу написать какой-нибудь алгоритм или парсер, который должен определять позицию сайта в результатах поиска Google. Проблема в том, что каждый раз, когда макет страницы Google меняется, я должен исправить / изменить алгоритм. Как ты думаешь, ребята действительно будут часто меняться? Есть ли какие-нибудь техники / советы / приемы по определению позиции сайта Google?

Как я могу сделать надежный алгоритм определения положения?

Я хочу использовать для этой цели C #, .NET 2.0 и HtmlAgilityPack. Мы будем очень благодарны за любые советы или предложения. Заранее спасибо, ребята!


ПОСЛЕ ОБНОВЛЕНИЯ

Я знаю, что Google покажет капчу, чтобы предотвратить машинные запросы. Для этого у меня есть специальный сервис, который распознает любую капчу. Не могли бы вы рассказать мне о своем опыте получения точных результатов соскабливания?


person kseen    schedule 14.03.2012    source источник


Ответы (5)


Я спросил об этом год назад и получил хорошие ответы. Определенно, Agility Pack - это то, что вам нужно.

В конце концов, мы сделали код грубого скребка, который выполнил свою работу и работал без каких-либо проблем. Мы относительно легко попадали в Google (около 25 запросов в день). Мы приняли меры предосторожности, выбрав случайным образом 1) порядок, 2) время дня и 3) паузу между запросами. Не знаю, помогло ли что-нибудь из этого, но нам ни разу не удалось ввести капчу.

Мы сейчас особо этим не заморачиваемся.

Его основными недостатками были / являются:

  • мы позаботились только о том, чтобы проверить первую страницу (возможно, мы могли бы закодировать расширенную версию, которая просматривала бы первые X-страницы, но, возможно, это было бы более высоким риском с точки зрения обнаружения Google).

  • его результаты были ненадежными и колебались. Вы можете быть 8-м каждый день в течение нескольких недель, за исключением одного случайного дня, когда вы были 3-м. Возможно ... сама идея внимательно читать ежедневные или еженедельные чтения и регистрировать наш рейтинг слишком ошибочна.

Чтобы ответить на ваш вопрос о том, что Google нарушает ваш код: Google не вносил принципиально критических изменений за все месяцы, в которые мы его запускали, но они изменили кое-что, что нарушило сохраняемый нами "снимок" результата ( может быть, изменение CSS?), что никак не повлияло на достоверность результатов.

person hawbsl    schedule 14.03.2012
comment
Большое спасибо за то, что поделились своим опытом! - person kseen; 14.03.2012

Google предлагает множество API для доступа к своим службам. Для поиска есть API пользовательского поиска.

person Darin Dimitrov    schedule 14.03.2012
comment
Это единственный способ сделать это Законным способом. Однако результаты бесполезны и очень редко точны. - person LiamB; 14.03.2012
comment
Разве в API нет условий, которые прямо запрещают вам делать автоматические запросы? - person hawbsl; 14.03.2012

Мы прошли через этот процесс несколько месяцев назад. Мы попробовали упомянутый выше API, и результаты даже не приблизились к реальным результатам поиска. (Google для этого много информации).

Очистка страницы - проблема, похоже, Google меняет разметку каждые несколько месяцев, а также проверяет, являетесь ли вы человеком или нет.

В конце концов мы сдались и выбрали один из коммерчески доступных (и часто обновляемых) комплектов.

person LiamB    schedule 14.03.2012

Я написал пару проектов по этому поводу, анализируя обычные результаты и результаты adwords. Пакет HTML Agility - определенно лучший вариант.

Мне кажется, я запускал запрос каждые 3 минуты, и это никогда не запускало CAPTCHA.

Что касается изменения форматирования, я узнал об идентификаторе UL (здесь говорят по памяти), и он менялся только раз в год (обычный и adwords).

Однако, как упоминалось выше, Google не очень-то нравится, что вы это делаете! :-)

person ianbailey    schedule 16.03.2012

Я почти уверен, что вам непросто получить доступ к результатам поиска Google. Они постоянно пытаются помешать людям это делать.

Если задумались о парсинге экрана - знайте, они начнут отображать капчу, и вы ничего не получите.

person Sebastian Siek    schedule 14.03.2012
comment
если вы проголосовали против, вы также можете добавить комментарий и объяснить причину - person Sebastian Siek; 13.04.2012