Como abordar as discussões do Google Groups rastreadores
-
18-09-2019 - |
Pergunta
Como exercício no RSS, gostaria de poder pesquisar praticamente todas as discussões do UNIX neste grupo.
Conheço o Python o suficiente e entendo RSS básico, mas estou preso ... como pego todas as mensagens entre datas específicas, ou pelo menos todas as mensagens entre o enésimo recente e o MTH RECENTE?
Descrições de alto nível, o pseudo-código é bem-vindo.
Obrigada!
EDITAR:
Eu gostaria de poder voltar mais de 100 mensagens, mas não pegando como analisar 10 mensagens em um momento como usar este URL:
http://groups.google.com/group/comp.unix.shell/topics?hl=en&start=2000&sa=n
Deve haver uma maneira melhor.
Solução
Como Randal mencionou, isso viola os TOs do Google - no entanto, como hipotético ou para uso em outro site sem essas restrições que você pode facilmente montar algo com urllib e Belo grupo. Use Urllib para abrir a página e, em seguida, use o BeautifulSoup para pegar todos os tópicos do thread (e links, se você quiser se arrastar mais fundo). Em seguida, você pode encontrar programaticamente o link para a próxima página dos resultados e, em seguida, fazer outro urllib para ir para a página 2 - depois repita o processo.
Nesse ponto, você deve ter todos os dados brutos, é apenas uma questão de manipular os dados e implementar sua funcionalidade de pesquisa.
Outras dicas
Rastrear grupos do Google viola o Termos de Serviço do Google, especificamente a frase:
Use qualquer robô, aranha, aplicação de pesquisa/recuperação de site ou outro dispositivo para recuperar ou indexar qualquer parte do serviço ou coletar informações sobre os usuários para qualquer propósito não autorizado
Tem certeza de que deseja anunciar que está fazendo isso tão abertamente? E você está cego para as consequências do seu resultado?
Por n recente, parece que você poderia passar o parâmetro ?num=50
ou algo no URL da alimentação
Por exemplo, 50 novas mensagens do grupo Comp.unix.shell
http://groups.google.com/group/comp.unix.shell/feed/atom_v1_0_msgs.xml?num=50
e depois pegue um programa de feedparser como Analisador de alimentação universal
Há .update_parsed
opção em Feedparser, você pode usar isso para verificar a msg dentro de um intervalo específico
>>> e.updated_parsed # parses all date formats
(2005, 11, 9, 11, 56, 34, 2, 313, 0)
Você já pensou em Yahoos YQL? Não é tão ruim e pode acessar muitas APIs. http://developer.yahoo.com/yql/
Não sei se os grupos são suportados, mas você pode acessar feeds RSS. Pode ser útil.