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!
Webseiten auswerten: API finden?
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.
Wenn es eine API gibt, solltest du die allerdings mit Google oder den Developer Tools deines Browsers finden können.
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.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.
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?
@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.
Sieht man das dem Quelltext der Seite eigentlich an? Wenn ja, wie?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.
Dann denke ich, das sollte kein Problem sein (einmal in der Woche schlimmstenfalls drei Requests hintereinander mit Auswertungspausen). Danke für die Informationen!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.
- noisefloor
- User
- Beiträge: 3843
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Gruß, noisefloor
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.Sieht man das dem Quelltext der Seite eigentlich an? Wenn ja, wie?
Gruß, noisefloor
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.
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!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.