Browserloser Zugriff auf LinkedIn mit Python

8

Ich schreibe eine Befehlszeilenanwendung, die auf linkedin zugreift. Ich verwende die API python-linkedin .

Die Dinge funktionieren so, wie ich es erwartet habe, aber ich habe eine wirklich große Kritik am Authentifizierungsprozess. Derzeit muss ich:

  1. Starten Sie meine Anwendung und warten Sie, bis sie eine Authentifizierungs-URL
  2. gedruckt hat
  3. Gehe mit meinem Browser zu dieser URL
  4. Geben Sie meinen Segen für die Anwendung und warten Sie, bis sie mich an eine URL weiterleitet
  5. Extrahieren Sie das Zugriffstoken von der URL
  6. Geben Sie dieses Zugriffs-Token in meine Anwendung ein
  7. Tu, was ich mit linkedin machen muss

Ich mag es nicht, die Schritte 2 bis 5 manuell zu machen, also möchte ich sie automatisieren. Was ich dachte, war:

  • Verwenden Sie einen kopflosen Client wie mechanize , um auf die URL von Schritt 1 oben zuzugreifen
  • Scrape den Bildschirm und gebe meinen Segen automatisch (möglicherweise erforderlich, um Benutzername und Passwort einzugeben - ich kenne diese, so ist es in Ordnung)
  • Warte, umgeleitet zu werden, und nimm die Umleitungs-URL
  • Extrahiere das Token von der URL
  • Gewinn!

Fragestunde:

  • Sich umschauen, dieser Typ hier auf SO versuchte es etwas ähnliches tun, aber wurde gesagt, dass es unmöglich ist. Warum?
  • Dann macht dieser Typ hier es in Jython und HtmlUnit. Sollte mit straight Python möglich sein und mechanisieren, oder?
  • Endlich, hat jemand eine Lösung mit Python und Mechanize (oder einer anderen Headless-Browser-Alternative) gesehen? Ich will das Rad nicht neu erfinden, sondern werde es bei Bedarf kodieren.

BEARBEITEN :

Code zum Initialisieren von Tokens (mit dem Ansatz der akzeptierten Antwort):

%Vor%

Zu verwendender Code:

%Vor%     
misha 21.11.2011, 14:45
quelle

2 Antworten

2

Da Sie planen, sich nur einmal zu autorisieren und dann die API für Ihre eigenen Informationen aufzurufen, würde ich Ihr Zugriffstoken nur manuell abrufen, anstatt mich um die Automatisierung zu kümmern.

Das Benutzerzugriffstoken, das von LinkedIn generiert wird, wenn Sie eine bestimmte Anwendung autorisieren, ist dauerhaft, es sei denn, Sie geben auf dem Autorisierungsbildschirm etwas anderes an. Sie müssen lediglich den Berechtigungsbildschirm mit Ihrer Anwendung generieren, den Prozess durchlaufen und bei Erfolg ein Benutzerzugriffstoken (Token und Secret) ausgeben und speichern. Sobald Sie das haben, können Sie diese fest in eine Datei, Datenbank usw. codieren, und wenn Sie Aufrufe an die API machen, verwenden Sie diese.

Es ist in PHP, aber diese Demo macht das grundsätzlich. Ändern Sie einfach das Skript demo.php, um Ihr Token nach Bedarf auszugeben.

    
Paul Mennega 23.11.2011, 16:28
quelle
1

Ich habe es selbst nicht versucht, aber ich glaube, dass es theoretisch möglich sein sollte mit Selenium WebDriver mit PyVirtualDisplay . Diese Idee wird hier beschrieben.

    
unutbu 21.11.2011 14:55
quelle

Tags und Links