2010-04-02 3 views
10

Je voudrais gratter la liste de discussion d'un groupe google privé. C'est une liste de plusieurs pages et je pourrais avoir à le faire plus tard, donc les scripts semblent être la bonne façon de procéder.Comment gratter un groupe _private_ google?

Puisqu'il s'agit d'un groupe privé, je dois d'abord me connecter à mon compte google. Malheureusement, je n'arrive pas à me connecter en utilisant wget ou ruby ​​Net :: HTTP. Étonnamment google groups n'est pas accessible avec le Client Login interface, donc tous les exemples de code sont inutiles.

Mon script ruby ​​est intégré à la fin de la publication. La réponse à la requête d'authentification est un 200-OK mais pas de cookies dans les en-têtes de réponse et le corps contient le message "La fonctionnalité de cookie de votre navigateur est désactivée. Veuillez l'activer."

J'ai obtenu la même sortie avec wget. Voir le script bash à la fin de ce message.

Je ne sais pas comment contourner ce problème. est-ce que je manque quelque chose? Une idée?

Merci d'avance.

John

Voici le script Ruby:

# a ruby script 
require 'net/https' 

http = Net::HTTP.new('www.google.com', 443) 
http.use_ssl = true 
path = '/accounts/ServiceLoginAuth' 


email='[email protected]' 
password='topsecret' 

# form inputs from the login page 
data = "Email=#{email}&Passwd=#{password}&dsh=7379491738180116079&GALX=irvvmW0Z-zI" 
headers = { 'Content-Type' => 'application/x-www-form-urlencoded', 
'user-agent' => "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/6.0"} 

# Post the request and print out the response to retrieve our authentication token 
resp, data = http.post(path, data, headers) 
puts resp 
resp.each {|h, v| puts h+'='+v} 

#warning: peer certificate won't be verified in this SSL session 

Voici le script bash:

# A bash script for wget 
CMD="" 
CMD="$CMD --keep-session-cookies --save-cookies cookies.tmp" 
CMD="$CMD --no-check-certificate" 
CMD="$CMD --post-data='[email protected]&Passwd=topsecret&dsh=-8408553335275857936&GALX=irvvmW0Z-zI'" 
CMD="$CMD --user-agent='Mozilla'" 
CMD="$CMD https://www.google.com/accounts/ServiceLoginAuth" 
echo $CMD 
wget $CMD 
wget --load-cookies="cookies.tmp" http://groups.google.com/group/mygroup/topics?tsc=2 

Répondre

6

Avez-vous essayé avec mechanize pour le rubis?
La bibliothèque de mécanisation est utilisée pour automatiser l'interaction avec le site Web; vous pouvez vous connecter à google et parcourir votre groupe google privé en enregistrant ce dont vous avez besoin.

Here un exemple où la mécanisation est utilisée pour le raclage Gmail.

+0

Salut systempuntoout, merci pour votre réponse. Je ne savais pas mécaniser. J'ai réussi à me connecter et à gratter quelques pages, donc c'est génial. Je partagerai le script plus tard. Merci encore, John – John

+0

@John: combien plus tard? :-) –

+0

merci pour ce lien! vous pouvez surfer sur le web avec irb et un objet mécanisé! – grinch

1

Je l'ai fait précédemment en me connectant manuellement avec Firefox, puis j'ai utilisé Chickenfoot pour automatiser la navigation et le grattage.

+0

Chickenfoot semble très utile aussi. Un joli plugin dans ma boîte à outils! Merci! – John

1

J'ai trouvé cette solution PHP à scraping private Google Groups.

+0

Merci pour le lien Profjim. Cependant, mon problème était de gérer les groupes de connexion google. Grattage des groupes publics est ok. – John

Questions connexes