Ruby, Scrape страница написана полностью на JavaScript - PullRequest
0 голосов
/ 07 июля 2011

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

  • Могут ли страницы, написанные таким образом, не обрабатываться обычными инструментами, такими как Mechanize & Hpricot (я думаю, они не могут)

  • Доступны ли эти инструменты / гемы, которые могут попытаться отобразить страницу (например, браузер), а затем собрать данные?

Спасибо!

Редактировать: Спасибо за ваши ответы. Я понимаю, что очищать Google напрямую не правильно, есть API, который можно использовать. В основе вопроса, который я действительно хотел выяснить, было то, есть ли страница, полностью написанная на javascript (включая текст и содержимое - может быть запутано). Есть ли драгоценный камень, который попытается отобразить страницу только в тексте и тогда получите его текстовое содержимое?

Ответы [ 4 ]

2 голосов
/ 07 июля 2011

Это очень, очень важно, поэтому слушайте внимательно:

Всегда сначала проверяйте 'robots.txt' и не ломайте голову, если он скажет вам не делать!

Если вы посмотрите на http://www.google.com/robots.txt,, вы четко увидите эту строку:

Disallow: /search

Правка (на основе комментариев автора)

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

2 голосов
/ 07 июля 2011

Вот ссылка, которая отключает мгновенную загрузку.
http://www.google.com/webhp?hl=en&tab=ww&complete=0

  • Доступны ли они инструменты / гемы, которые могут попытаться отобразить страницу (например, браузер), а затем собрать данные?

Вы можете использовать PhantomJS (C ++) или PyPhantomJS (Python) для очистки экрана, если хотите.

PyPhantomJS также имеет действительно хорошую систему плагинов, чего нет в C ++.

Есть также очищающая библиотека, которую кто-то только что выпустил для нее.
Пост группы Google | адрес GitHub

Примечание. Как уже говорили другие, Google не хочет, чтобы люди просматривали результаты поиска. Я предлагаю соблюдать их Условия обслуживания.

1 голос
/ 09 июля 2011

Вы должны взглянуть на TOS от Google . Царапать их результаты поиска не допускается. Используйте их API поиска.

0 голосов
/ 21 июля 2011

Если вы очищаете Google, вы обязательно должны использовать прокси, по крайней мере, 100+. В противном случае они легко забанят ваш IP-адрес.

...