Instagram: Bilder in der großen Auflösung finden und zum Download aufbereiten

Unser Instagram-„Bot“ verfügt nun in der Versionsnummer „0.7b“ über eine Backupfunktion. Diese umfasst im Wesentlichen das Sichern der Bilder aus den IG-Beiträgen des eigenen Accounts.
Diese Prozedure wurde wiefolgt realisiert:

1. Scrapen, Abholen des eigenen Streams
2. Speichern der Posturl-Liste in eine „Memo“
3. Schleife: (for-to-do) Ansurfen der Post-Urls
3.1. Quellcodeanalyse und suchen nach:
og:image“ content=“bildurl?ig_cache_key=key“
3.2. Entferne cache_key
3.3. Download der Bilder

Weiter lesen, Quellcodebeispiele
Datei aus dem WWW downloaden (Delphi)
Quelltext aus TWebbrowser auslesen
Rohdatenanalyse, IG-Account

Instagram, Tagreichweiten und Tags via Json holen und interpretieren.

Möchte man sich die aufwändige Entwicklung eines eigenen Parsers sparen, lässt sich der Export der Daten via API problemlos via JSON realisieren. Hier geht man wiefolgt vor:

[Einbindung der Unit]
uses json;

[Prozedur]
procedure tagdaten_holen;
var lauf: integer;
JSONArray: tJSONArray;
JSONValue: tJSONValue;
JSONPair: TJSONPair;
JSON: TJSONObject;
i: integer;
begin
try
debug.Text:=idhttp1.Get(‚https://api.instagram.com/v1/tags/search?q=’+tagrecherche.text+’&access_token=’+token.text);
JSONValue := TJSONObject.ParseJSONValue(debug.text);
JSON := TJSONObject.ParseJSONValue(debug.Lines.Text) as TJSONObject;
JSONArray := TJSONArray(JSON.Get(‚data‘).JsonValue);
with tagr_roh do
begin
cells[0,0]:=’Nr.‘;
cells[1,0]:=’Tag‘;
cells[2,0]:=’Reichweite‘;
colcount:=3;
rowcount:=1;
end;
for i := 0 to JSONArray.Size – 1 do
begin
with tagr_roh do
begin
cells[0,rowcount]:=inttostr(rowcount);
cells[1,rowcount]:=(TJSONPair(TJSONObject(JSONArray.Get(i)).Get(’name‘)).JsonValue.Value);
cells[2,rowcount]:=(TJSONPair(TJSONObject(JSONArray.Get(i)).Get(‚media_count‘)).JsonValue.Value);
rowcount:=rowcount+1;
end;
end;
except
showmessage(‚Fehler mit der Internetverbindung. Prüfe Diese und den Token!‘);
end;
end;

TWebbrowser: ID-lose Elemente anklicken

Bei einem aktuellen Projekt aus dem Bereich „Webautomatisierung“ musste das folgende Problem gelöst werden:

[Ausgangslage]
– Klicken von Tags
– anzuklickende Tags besitzen keine individuelle ID
– es existiert eine Tagliste, aus der der anzuklickende Tag ausgewählt werden muss
– anzuklickende Tags besitzen individuelle „innertext

[Vorgehensweise]

(1) Variablendeklaration
uses mshtml;
var ovElements, ovelements_1: OleVariant;

(2) Suchen und Klicken
ovElements_1 := WebBrowser1.OleObject.Document.all;
for j := 0 to (ovElements.Length - 1) do
if (ovElements_1.item(j).className = 'name') then
begin
if ovelements_1.item(j).innertext="wort" then
begin
ovElements_1.item(j).Click;
end;
end;

Weitere Infos:
TWebbrowser – Oledata

TWebbrowser: Einbindung und Arbeitsspeicherprobleme

Bei der Arbeit an den Webautomatismen entdeckte ich, dass der TWebbrowser enorm viel Arbeitsspeicher verbraucht. Das Problem lässt sich wie folgt lösen:

(1) Webbrowser – Prozess durchführen und auf Beendigung warten
(2) SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF); in den Code einfügen

Bei einem konkreten Projekt wurde hierüber der durchschnittliche Verbrauch von ca. 650MB auf 60-80MB (schwankend) gedrückt.

[Updatenotiz] Marktrecherche 0.8b

Die neue Version der Software wurde soeben fertig gestellt und verteilt.
Die folgende Galerie zeigt einige Ausschnitte aus der Pinterestrecherchefunktion. Hierbei habe ich das System der „Interessensmatrizen“ wieder aufgenommen.
Das Programm „verlangt“ die Eingabe eines Projektes inklusive der zu analysierenden Themenwelten. Hier wurden die Daten aus dem Projektbeispiel „Wohnen“ (=>wohnzimmer, schlafzimmer, kinderzimmer, badezimmer, bad, flur, haus, wohnung) analysiert.

(A) Screenshots

(B) Beispieldatensätze
Die nachfolgenden Excel-Tabellen sind Exports aus der Anwendung.
Sie zeigen:
(1) Rohdaten – Pinterest // Suchvorschläge
pint_suggest.xlsx
Die Datenerhebung erfolgt über die Funktionen, welche ich im Artikel „Pinterest – Suchvorschläge auslesen“ beschrieb.
(2) Rohdaten – Pinterest // Themenwelten
pint_rohdaten.xlsx
Die Datenerhebung erfolgt über die Funktionen, welche ich im Artikel „Pinterest – Themenwelten auslesen“ beschrieb.
(3) Pinterest // Themenwelten gewichten, Zusammenzählung
Um die erhobenen Daten in ein interpretationsfähiges Format zu bringen, werden in der Anwendung die gefundenen „Unterthemen“ oder „weiterführende Themen“ zusammen gezählt und nochmal in Zuordnung zu den „Themenwelten“ dargestellt. Die Datei pint_zfg.xlsx zeigt das entsprechende Beispiel.

[Updatenotiz] Schliessung vom Suchvorschlagstool und Übertrag in „Marktrecherche“

Nach einigen Zahlenstudien, Gesprächen und Experimenten kam ich zum Entschluss, das besprochene Projekt „globaler“ und weitestgehend unabhängig von den üblichen und fast schon klischeehaften Keywordrechercheprozeduren weiter zu entwickeln. Im nächsten Schritt werden hier alle Analysealgorithmen zusammen gefasst, welche in den letzten Jahren gestaltet worden sind.
Die Versionsnummer 0.5b wird folgendes umfassen:

(A) Suchmaschinen
[Datenquelle „Google“]
– Suchvorschläge
– generierte Fragen analog zum „W-Fragen-Tool“
– generierte Phrasen auf Basis von Städten für die Vermarktung von lokal abhängigen „Dingen“
– GoogleTrends

[Datenquelle „Bing“]
– Suchvorschläge

(B) Socialmedia
[Datenquelle „Instagram“]
– Tagrecherche zzgl. Reichweitenauswertung(en)

[Datenquelle „Pinterest“]
– Suchvorschläge
– Themenweltenanalyse(n)

(C) Recherchefunktionen
– Abgleich: Suma <> Socialmedia
– Abgleich: G-Trends <> Socialmedia

Weitere potentielle Datenquellen, welche sich aktuell in einer Art „Werthaltigkeitsanalyse“ befinden, sind:
– GooglePlaces inkl. Öffnungszeiten und ggf. vorhandenen Bewertungen
– GoogleShopping inkl. Preisdifferenzen und ggf. vorhandenen Bewertungen
– Twitter: Hashtagsuche und Trends
– Gplus: Hashtagauswertung
– Facebookpages, sofern „offen“ und auslesbar
– Youtube: Suchvorschläge (?), Taganalysen (!)
– Keywordplaner, sofern kostenlos abrufbar (muss ich noch prüfen)

Interessante Blogcommentspambeispiele

Neulich entdeckte ich weitere „interessante“ Beispiele aus der Ecke „Blogcommentspam“ auf dem Fotoblog.

(a) Spammer für eine Berufsinfoseite zzgl. Verkauf von eBooks
„Ich war kürzlich auch noch im Johannapark. Sehr schön dort und ja – das Objekt soll einen Barockpark darstellen, habe ich auch gehört.“

Dieser Spam zielte auf einen Beitrag mit Thema „Johannapark“ ab und das Impressum der hinterlegten Url sagte mir, dass der Spammer wohl mit einer enorm geringen Wahrscheinlichkeit den Park besucht hatte. Das banale Zitieren von Hinweisen bzgl. des fotografierten Kunstwerks zauberter mir ein Lächeln auf die Lippen. Der Linktext war – selbstverständlich – ein Name, welcher nicht deckungsgleich mit dem Namen aus dem Impressum der hinterlegten Url ist.

(b) Amazonaffiliate-Spammer (Wohnen, Einrichten, Deko)
„Ich denke gerade auch auf Messen findet man tolle Ideen für Deko. Ich habe eine tolle Seite im Netz gefunden, welche von Weinkisten und deren Verwendung handelt. Tolle Dekoideen sind dort zu sehen. Ich finde es einfach schön, wenn sich leute die Zeit dafür nehmen.
So eine Messe möchte ich allerdings auch einmal besuchen! Wie gesagt auf [domainname] findet Ihr tolle Dekoideen“

Dieser Spam zielte auf eine Galerie ab, welche ich nach einem Messebesuch (Themen: Einrichten, Wohnen, Wohnwelten etc.) gestaltete. Interessant bei dieser „Werbung“ ist natürlich, dass der Linktext genau deckungsgleich zur hinterlegten Domain war. Amüsant fand ich hier auch die halbgar ausformulierte „Empfehlung“ und ich dachte schon darüber nach, den Spammer direkt anzurufen und ihn darüber zu informieren, dass diese Pseudoempfehlung sich im hinterlegten Spamlink und noch im Linktext // Name befindet.

Die ausgewählten Spambeispiele sind nur exemplarisch und ich beobachte derzeit zwischen 10-12 „frische“ Spams / Tag auf unseren Fotoblog. Neu scheint hier zu sein, dass nicht mehr ausschliesslich die klischeehaften Amazonaffiliatespammer auftauchen, sondern dass auch Shops, relativ bekannte Geschäfte und auch Vertreter_innen aus Coaching & Beratung sichtbar werden.

Pinterest – weiterführende Themen recherchieren // auslesen

Sucht man bei dem Medium „Pinterest“ bspw. nach „Kids“ mit Hilfe der Url https://de.pinterest.com/search/pins/?q=kids, entdeckt man interessante Vorschläge unterhalb des Suchformulars wie „Basteln“, „Hochbett“ oder „Room Deko“.
Diese Informationen lassen sich wiefolgt auslesen:

[Schritt 1]
=> Download: https://de.pinterest.com/search/pins/?q=[suchwort]
[Schritt 2]
=> Identifikation von [suchwort] im Quellcode
[Schritt 3]
=> Übergabe in die Rohdaten und spätere Interpretationen (Matrix, Zusammenzählung, Abgleich mit anderen Themenwelten usw.)

Instagram-Tool: Ein paar Zahlen zum Like-Bot

Für einem durchschnittlichen Wochentag habe ich die Ergebnisse des Instagram-Tools (Like-Bot) einmal ausgewertet. Als Testaccount dient ein relativ frisches, organisch wachsendes Instagram-Profil mit knapp 200 Abonnenten. Thematisch bewegt sich der Content im Bereich Lifestyle & Food.

Oberfläche des Instagram-Tools

Zu Beginn der Stichprobe poste ich ein neues Foto und starte den Like-Bot. Dieser wird in den nächsten acht Stunden insgesamt 640 Likes verteilen auf Postings, die in ihren Bildunterschriften einen von ungefähr 300 Hashtags (#) enthalten, die ich im Tool zusammengestellt habe. All diesen Tags ist gemein, dass sie thematisch zum Content meines eigenen Instagram-Accounts passen.

Innerhalb der nächsten 8 Stunden bekommen die Postings meines Accounts 96 Likes, davon entfallen 32 Likes auf das zuletzt gepostete Foto. Ungefähr zehn Likes der Gesamtmenge stammen von Accounts, die mir bereits länger folgen; ca. 15 Likes ordne ich Accounts zu, die ohne die Hilfe des Like-Tools auf meine Postings aufmerksam werden. Der größte Teil der Likes stammt also von „Zurück-Likenden“. Zwei Likende hinterlassen sogar jeweils einen netten Kommentar unter zwei meiner Fotos; drei Spam-Kommentare lösche ich.
Nach acht Stunden zähle ich 9 neue Abonnenten, 5 davon folge ich interessiert zurück.

Mit dem Like-Bot generiere ich eindeutig mehr Likes, Comments & Followings. Das Tool findet je nach Zusammenstellung der Hashtag-Liste für mich spannende Accounts, die thematisch mit meinem verwandt sind oder mich unabhängig von meinem Content interessieren könnten. Möglicherweise abonnieren mehr Zurück-Likende meinen Account, wenn dieser große thematische Überschneidungen mit dem eigenen Content aufweist: Poste ich überwiegend veganes Essen, so lohnt es sich, mit dem Like-Bot von vornherein Fotos zu liken, die mit dazu passenden Hashtags versehen sind. Hierbei hilft auch unser hauseigenes Recherchewerkzeug, das im Instagram-Tool integriert ist.

[Updatenotiz] Suchvorschlagstool 0.4b

Neue Zahlen und einige Gespräche bewegten mich zu einem Relaunch des Suchvorschlagtools in Form der Versionsnummer 0.4b. Die Funktionen sind die Folgenden:

– Auslesen von Suchvorschlägen auf Basis der G-Suggest-API-Schnittstelle
– Mehrstufiges Auslesen der Suchvorschläge
– Anbindung an die API von Bing
– Auslesen der Suchvorschläge aus Pinterest

[Exportfunktionen]
– unterstütze Formate: XLSX, CSV und HTML
– Ergänzung der Reports um die Spalten „Datum“, „Kürzel“ zwecks Optimierung von Teamarbeiten

Das aktuelle Compilat wurde an die Kund_innen und Betatester_innen verteilt. Im Moment denke ich noch intensiv über die Weiterentwicklung des Projektes „Suchvorschlagstool“ in eine andere Richtung nach. Der Grund ist einfach: ich bin kein wirklicher Freund der These, dass ausgelesene Suchvorschläge oder Ergebnisse aus den W-Fragen-Recherche-Prozeduren ein tatsächliches Interesse in Form von Suchintentionen abbildet oder abbilden kann.

Eventuell werde ich bei Gelegenheit prüfen, inwiefern man Blogkommentare, Blogs-Allgem, FB-Kommentare oder die Forenszene in die Beobachtung einbezogen werden kann.