Scraping, Daten von Facebook mit Python

Ich versuche schon seit mehreren Tagen (erfolglos) zu kratzen Städten von über 500 Facebook-URLs. Jedoch, Facebook behandelt seine Daten in eine sehr seltsame Weise, und ich kann nicht herausfinden, was Los ist unter der Haube zu verstehen, was ich tun muss.

Im wesentlichen das problem ist, dass Facebook zeigt sehr unterschiedliche Mengen an Daten, je nachdem, wer angemeldet ist und was die Privatsphäre-Einstellungen des Kontos sind. Zum Beispiel, versuchen Sie, öffnen Sie die folgenden drei links, die beide in einem browser, in dem Sie angemeldet sind, Facebook, und eine, wo Sie nicht sind:

Wie Sie sehen können, Facebook lädt die Daten in beiden Fällen für den ersten link, sondern bekommt nur die Daten für das zweite link, wenn Sie sich angemeldet haben (mit einem account). Der Dritte link zeigt die Stadt, wenn Sie eingeloggt sind, zeigt jedoch nur weitere Informationen, wenn Sie es nicht sind.

Der Grund dafür ist äußerst problematisch (und im Zusammenhang mit Python) ist, dass, wenn Sie versuchen, kratzen Sie die Seite mit Schöne Suppe oder Mechanisieren, ich kann nicht herausfinden, wie man das Programm zu "behaupten", dass ich einem Konto angemeldet. Dies bedeutet, dass ich kann leicht abrufen von Daten aus dem ersten link (von denen es weniger als 10), aber ich Schaffe es nicht, die Stadt aus der zweiten oder Dritten Art. Bisher habe ich versucht eine Reihe von Lösungen, mit wenig Erfolg.

Hier einige Beispiel-code, der funktioniert die erste Art, nicht aber für andere Arten:

import mechanize
import re
import csv

user_info = []

fb_url = 'http://www.facebook.com/100004210542493'
br = mechanize.Browser()
br.set_handle_robots(False)

br.open(fb_url)
all_html = br.response().get_data()
print all_html

city = re.search('fsl fwb fcb">(.+?)</a></div><div class="aboutSubtitle fsm fwn fcg', all_html).group(1)

user_info = [fb_url, city]
print user_info

Ich habe auch eine version, die verwendet Schöne Suppe. Wenn jemand irgendwelche Ideen auf, wie man das umgehen kann, wäre ich sehr dankbar. Danke!

Kein Glück? Ich hab auch Sachen versucht, aber gescheitert.

InformationsquelleAutor cscanlin | 2013-09-27

Schreibe einen Kommentar