10 Stimmen

Wie scrape ich eine _private_ Google-Gruppe?

Ich würde gerne die Diskussionsliste einer privaten Google-Gruppe abrufen. Es handelt sich um eine mehrseitige Liste, und ich muss sie vielleicht später noch einmal abrufen, also bietet sich ein Skript an.

Da es sich um eine private Gruppe handelt, muss ich mich zuerst in meinem Google-Konto anmelden. Leider schaffe ich es nicht, mich mit wget oder ruby Net::HTTP einzuloggen. Überraschenderweise ist google groups nicht zugänglich mit dem Client Login Schnittstelle Daher sind alle Codebeispiele nutzlos.

Mein Ruby-Skript ist am Ende des Beitrags eingebettet. Die Antwort auf die Authentifizierungsanfrage ist ein 200-OK, aber keine Cookies in den Kopfzeilen der Antwort und der Textkörper enthält die Meldung "Die Cookie-Funktion Ihres Browsers ist deaktiviert. Please turn it on."

Ich habe die gleiche Ausgabe mit wget erhalten. Siehe das Bash-Skript am Ende dieser Nachricht.

Ich weiß nicht, wie ich das umgehen kann. Übersehe ich etwas? Irgendeine Idee?

Vielen Dank im Voraus.

John

Hier ist das Ruby-Skript:

# a ruby script
require 'net/https'

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

email='john@gmail.com'
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

Hier ist das Bash-Skript:

# 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=john@gmail.com&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

6voto

systempuntoout Punkte 68725

Haben Sie es mit mechanisieren für Rubin?
Die Mechanize-Bibliothek dient zur Automatisierung der Interaktion mit der Website; Sie können sich bei Google anmelden und Ihre private Google-Gruppe durchsuchen, um zu speichern, was Sie brauchen.

Aquí ein Beispiel, bei dem Mechanize für das Scraping von Google Mail verwendet wird.

1voto

hoju Punkte 26555

Zuvor habe ich mich manuell mit Firefox angemeldet und dann Hühnerfuß um das Browsing und Scraping zu automatisieren.

1voto

dubiousjim Punkte 4604

Ich habe diese PHP-Lösung für Scraping von privaten Google-Gruppen .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X