Как подойти к гугл групповой дискуссии crawler - PullRequest
1 голос
/ 06 февраля 2010

как упражнение в RSS Я хотел бы иметь возможность просматривать практически все обсуждения Unix в этой группе.

comp.unix.shell

Я достаточно знаю Python и понимаю базовый RSS, но я застрял на ... как мне перехватить все сообщения между конкретными датами или, по крайней мере, все сообщения между N-м недавним и M-последним?

Описания высокого уровня, псевдокод приветствуется.

Спасибо!

EDIT:

Я бы хотел иметь возможность вернуться назад более чем к 100 сообщениям, но не перехватывать, как, например, 10 сообщений за раз, например, используя этот URL:

http://groups.google.com/group/comp.unix.shell/topics?hl=en&start=2000&sa=N

Должен быть лучший способ.

Ответы [ 4 ]

4 голосов
/ 13 февраля 2010

Сканирование групп Google нарушает Условия использования Google , в частности фразу:

использовать любого робота, паука, приложение для поиска / поиска по сайту или другое устройство для извлечения или индексирования любой части Сервиса или сбора информации о пользователях для любых несанкционированных целей

Вы уверены, что хотите объявить, что делаете это так открыто? И вы слепы к последствиям вашего результата?

3 голосов
/ 06 февраля 2010

Для N недавних кажется, что вы можете передать параметр ?num=50 или что-то в URL канала

Например, 50 новых сообщений из группы comp.unix.shell

http://groups.google.com/group/comp.unix.shell/feed/atom_v1_0_msgs.xml?num=50

, а затем выберите программу FeedParser, например Универсальный анализатор подачи

В feedparser есть опция .update_parsed, вы можете использовать ее для проверки сообщения в определенном диапазоне дат

>>> e.updated_parsed              # parses all date formats
(2005, 11, 9, 11, 56, 34, 2, 313, 0)
1 голос
/ 14 февраля 2010

Как упоминал Рэндал, это нарушает ToS Google - однако, как гипотетический или для использования на другом сайте без этих ограничений, вы можете довольно легко настроить что-то на urllib и BeautifulSoup, Используйте urllib, чтобы открыть страницу, а затем используйте BeautifulSoup, чтобы захватить все темы веток (и ссылки, если вы хотите сканировать глубже). Затем вы можете программно найти ссылку на следующую страницу результатов и затем сделать еще один urllib, чтобы перейти на страницу 2, а затем повторить процесс.

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

1 голос
/ 14 февраля 2010

Думали ли вы о Yahoos YQL? Это не так уж плохо и может получить доступ ко многим API. http://developer.yahoo.com/yql/

Я не знаю, поддерживается ли группа, но вы можете получить доступ к RSS-каналам. Может быть полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...