Вопрос

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

Comp.Unix.shell

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

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

Благодарю вас!

РЕДАКТИРОВАТЬ:

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

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

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

Это было полезно?

Решение

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

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

Другие советы

Ползание Google Groups нарушает Условия обслуживания Google, в частности, фраза:

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

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

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

Например, 50 новых сообщений из Comp.Unix.Shell Group

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

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

Есть .update_parsed вариант в FeedParser, вы можете использовать это, чтобы проверить MSG в определенном диапазоне дат

>>> e.updated_parsed              # parses all date formats
(2005, 11, 9, 11, 56, 34, 2, 313, 0)

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top