Как подходить
-
18-09-2019 - |
Вопрос
В качестве упражнения в RSS я хотел бы иметь возможность искать почти все дискуссии UNIX в этой группе.
Я знаю достаточно 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 -каналам. Может быть полезным.