Webseiten auswerten: API finden?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
bb1898
User
Beiträge: 199
Registriert: Mittwoch 12. Juli 2006, 14:28

Wenn es um Web-Scraping geht, finde ich immer mal wieder den Hinweis, eine Webseite könnte auch eine API anbieten, mit der es besser ginge (Google z.B., wenn ich nicht irre).
Wie kriegt man im Einzelfall raus, ob das für eine bestimmte Seite zutrifft? Gibt es da irgendeine Sorte von standardisierten Angaben, nach denen man suchen könnte?
Oder anders herum, kennt sich jemand auf http://www.dfb.de so weit aus?
Danke für Hinweise aller Art!
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Da gibt es keinen Standard, du kannst aber davon ausgehen dass die allermeisten Seiten keine API haben. Wenn es um SPAs geht kann es auch sein dass es eine API gibt, die aber nicht für die Öffentlichkeit bestimmt ist, undokumentiert und möglicherweise nicht sonderlich stabil ist.

Wenn es eine API gibt, solltest du die allerdings mit Google oder den Developer Tools deines Browsers finden können.
bb1898
User
Beiträge: 199
Registriert: Mittwoch 12. Juli 2006, 14:28

DasIch hat geschrieben:Wenn es um SPAs geht kann es auch sein dass es eine API gibt, die aber nicht für die Öffentlichkeit bestimmt ist, undokumentiert und möglicherweise nicht sonderlich stabil ist.
SPA ist ja nun eine ziemlich vieldeutige Abkürzung (http://acronyms.thefreedictionary.com/spa), meinst Du hier "Single Point of Access", oder was sonst? "Service Provider Application", "Service Provider Access" könnte auch passen.
Ich werde mal gucken. Es geht nur um die Erweiterung eines vorhandenen und funktionierenden Skripts, ich könnte also ohne weiteres auch bei request + beautifulsoup bleiben. Nur würde ich die Webseite dann nicht mehr nur einmal im Jahr, sondern jede Woche auswerten wollen - evtl. bewege ich mich da schon in einen unerwünschten Bereich?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@bb1898: DasIch meint mit SPA wahrscheinlich Single-Page-Application, was soviel heißt, wie, dass der ganze Inhalt einer Web-Seite dynamisch nachgeladen werden muß und das kann z.B. über eine API passieren, die XML oder JSON als Format benutzt, das dann von Dir einfacher zu parsen wäre. Ob Du nun direkt HTML parst oder irgendeine inoffizielle API benutzt ist eigentlich von der "unerwünschten Bereich"-Seite her egal. Solange Du nur wenige Requests pro Sekunde hast wird das aber wahrscheinlich nicht auffallen, solange Du Dich wie ein normaler Besucher verhältst.
bb1898
User
Beiträge: 199
Registriert: Mittwoch 12. Juli 2006, 14:28

Sirius3 hat geschrieben:@bb1898: DasIch meint mit SPA wahrscheinlich Single-Page-Application, was soviel heißt, wie, dass der ganze Inhalt einer Web-Seite dynamisch nachgeladen werden muß und das kann z.B. über eine API passieren, die XML oder JSON als Format benutzt, das dann von Dir einfacher zu parsen wäre.
Sieht man das dem Quelltext der Seite eigentlich an? Wenn ja, wie?
Ob Du nun direkt HTML parst oder irgendeine inoffizielle API benutzt ist eigentlich von der "unerwünschten Bereich"-Seite her egal. Solange Du nur wenige Requests pro Sekunde hast wird das aber wahrscheinlich nicht auffallen, solange Du Dich wie ein normaler Besucher verhältst.
Dann denke ich, das sollte kein Problem sein (einmal in der Woche schlimmstenfalls drei Requests hintereinander mit Auswertungspausen). Danke für die Informationen!
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Sieht man das dem Quelltext der Seite eigentlich an? Wenn ja, wie?
Ja. Wenn du im Quelltext der Seite nicht das siehst, was du im Browser siehst / lesen kannst. Wenn du dir im Browser den Quelltext anschaust (z.B. mit STRG+U im Firefox), dann siehst du "nur" die Seite, wie der Browser sie geladen hat und nicht, was später per JS / DOM-Manipulation nachgeladen / geändert wurde.

Gruß, noisefloor
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Um mal ein konkretes Beispiel für ein Single Page App zu haben, schau dir mal https://www.instagram.com/ an. Der <body> enthält dort nur <script> Tags, ein <noscript> Tag und ein leeres <span> Tag.
bb1898
User
Beiträge: 199
Registriert: Mittwoch 12. Juli 2006, 14:28

noisefloor hat geschrieben: Ja. Wenn du im Quelltext der Seite nicht das siehst, was du im Browser siehst / lesen kannst. Wenn du dir im Browser den Quelltext anschaust (z.B. mit STRG+U im Firefox), dann siehst du "nur" die Seite, wie der Browser sie geladen hat und nicht, was später per JS / DOM-Manipulation nachgeladen / geändert wurde.
Damit (und mit dem Beispiel von DasIch) ist das geklärt: eine SPA habe ich nicht vor mir. Quelltext und Browser-Inhalt passen zusammen. Inzwischen habe ich die Auswertung auch so weit auf die Reihe gebracht, jetzt muss der Krempel "nur noch" in meine Datenbank. Danke noch mal!
Antworten