LinkedIn Feed in Webseite einbetten

LinkedIn Feed in Webseite einbetten
Print Friendly, PDF & Email

Viele kennen das Problem: Der LinkedIn-Feed einer Firma kann nicht in Webseiten eingebettet werden. Auch manche möchten eine Art Social Wall erstellen, was leider auch nicht möglich ist.

Ich habe eine Möglichkeit gefunden – und möchte diese im Folgenden mit euch teilen.

Die Funktionsweise

Das ganze funktioniert leider nur über ein Paar umwege, da Microsoft die Feeds sehr aktiv schützt. Deshalb verwenden wir hier ein Python-Script, welches im Hintergrund von einem Server ausgeführt wird. Dieses Script öffnet einen Browser meldet sich an und macht dann Screenshots von den einzelnen Feed-Beiträgen.

Voraussetzungen

a) Für Feed / einzelne Bilder

Das Programm generiert in einem Ordner auf dem Server die Bilder, welche dann von eurer Webseite / dem Ort wo ihr den Feed ausführen, angezeigt und grafisch aufgearbeitet dargestellt.

Benötigt: Server, der Python-Scripte ausführen kann und diese geplant ausführen kann (z.B. Windows Server, Ubuntu Server, …)

b) Social Wall

  • Kleincomputer (z.B. Raspberry Pi)
  • Monitor / Beamer zum Anzeigen der Wall
  • Entsprechende Anschlusskabel

LinkedIn-Feed-Screenshots erstellen und verwenden

Als erstes erstellen wir das Script, welches die Screenshots vom Feed speichert. Übrigens: Alle Skripte sind unten zum Herunterladen freigegeben, alle Skripte sind unter CC-BY-NC-SA lizenziert, kommerzielle Nutzer können unter licensing@philipprogramm.de eine entsprechende Lizens erwerben.

Das Python-Programm speichert die einzelnen Feed-Beiträge je als Foto in einem Ordner.

from selenium import webdriver
from PIL import Image
import time

# SETUP VARIABLES (Enter your Data)
LinkedInUrl = "" # URL of Feed to get
EMail = "" # Your LinkedIn-Account Login E-Mail
Password = "" # Your LinkedIn Password
count = 30 # how many feed post should be loaded?
internetSleep = 2 # If you get grey Pictures, set this delay higher
folder = "feed" # Folder of the generated pictures

# FireFox init
driver = webdriver.Firefox()
driver.maximize_window()

# open LinkedIn
driver.get('https://www.linkedin.com/company/intel-corporation/')

# LOGIN
driver.get('https://www.linkedin.com/uas/login?trk=nav_header_signin')

# enter E-Mail
email_field = driver.find_element_by_id('username')
email_field.send_keys(EMail)

# enter Password
password_field = driver.find_element_by_id('password')
password_field.send_keys(Password)

# Submit
password_field.submit()

time.sleep(5)

# Open Feed
driver.get(LinkedInUrl)

# Scroll Down and Load Content
i_scroll = 0
while i_scroll < count:
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(3)
    i_scroll = i_scroll + 1

# Scroll Down and Capture Content
feedelements = driver.find_elements_by_class_name('occludable-update') # Find Feed Posts

i_posts = 0
for feedpost in feedelements:
    if i_posts + 1 > count:
        break
    # Get Location
    location = feedpost.location
    size = feedpost.size

    # Scroll to Location
    driver.execute_script("window.scrollTo(0, "+ str(location['y']-52) +");")

    # Get New Location
    location = feedpost.location
    size = feedpost.size

    # Wait for slow Internet
    time.sleep(internetSleep)

    # Save Screenshot
    driver.save_screenshot("image_temp.png")

    # Size Screenshot
    x = location['x']
    y = 52
    width = location['x']+size['width']
    height = 52+size['height']

    # Corp Screenshot
    im = Image.open('image_temp.png')
    im = im.crop((int(x), int(y), int(width), int(height)))
    im.save(folder + '/post'+ str(i_posts) +'.png')

    i_posts = i_posts + 1

driver.quit()

Einfach am Anfang des Programms die Variablen setzten, dann sollte es funktionieren!

Nun muss das Programm automatisch ausgeführt werden. Dies kann z.B. Bei Windows Server mit der Windows-Aufgabenverwaltung oder unter Linux mit Crontab erledigt werden, eventuell erscheinen hierzu noch Tutorials.

Jetzt kann die Webseite die Bilder aus dem Ordner nutzen, um den Feed anzuzeigen. Hierzu ein Beispiel, wie dies mit PHP erledigt werden könnte:

<?php
$ordner = "feed";
 
// Get folder
$alledateien = scandir($ordner);             
foreach ($alledateien as $datei) {
 $dateiinfo = pathinfo($ordner."/".$datei); 
  if ($datei != "." && $datei != ".."  && $datei != "_notes") {
   // OUTPUT
 ?>
   <img src="<?php echo $ordner . "/" . $datei;?>">
<?php
  };
};
?>  

LinkedIn-Social Wall

Die Funktionsweise der Social Wall ist nicht anders als die des oben beschriebenen Feeds. Nur dass diese noch etwas schicker aussieht 🙂 schaut es euch doch mal an: demo.philipprogramm.de/linkedin-feed.

Ihr könnt mithilfe dieses Repositorys sehr einfach eine Social-Wall erstellen. Dazu müsst ihr die getfeed.py mehrfach klonen, dann die entsprechenden Daten eingeben. Die Ordner sind column1 (für die erste Spalte), column2 (für die zweite Spalte), column3 (für die dritte Spalte) und zu letzt column4 für die letzte Spalte. Ihr müsst euren Server anweisen, die Programme regelmäßig auszuführen und einen entsprechenden Meta-Tag in der index.php einfügen, sodass sich auch die Webseite immer mit dem Python-Programm aktualisiert. Jetzt könnt ihr unter der Adresse eures Servers die Social Wall nutzen.
Hintergrund der Social Wall ändern
Einfach die die Datei background.config ändern mit folgenden Werten:
– backgrounds_autumn für Herbstbilder- backgrounds_spring für Frühlingsbilder- backgrounds_summer für Sommerbilder- backgrounds_technology für Technik-Bilder- backgrounds_winter für Winter-BilderWenn ihr einen Ordner mit anderen Namen erstellt und die Bilder als bg0.jpg, bg1.jpg, … abspeichert, dann könnt ihr einfach in der background.config den Namen zum Ordnernamen ändern und diese Bilder als Hintergrund nutzen!

Download

Unter GitHub: https://github.com/philipprogramm/LinkedInFeed

ACHTUNG: Der Download ist unter der Lizenz CC-BY-NC-SA. Siehe oben für weitere Informationen.

Ich hoffe, ich konnte euch helfen!

Philipp

Kommentar verfassen

%d Bloggern gefällt das: