2 Stimmen

Programmatische Überwachung einer Webseite

Jedes Projekt auf drupal.org hat seine eigene Seite:

http://drupal.org/project/marinelli

Wenn eine neue Veröffentlichung gemacht wird, wird sie der Veröffentlichungsseite des Projekts hinzugefügt

http://drupal.org/node/185969/release

Ich versuche, die Seite zu überwachen, aber ich möchte sie natürlich nicht ständig manuell überprüfen. Ich muss es programmatisch mit php tun.

  • Muss ich die Seite scrapen? Kann diese Seite gecrappt werden?

  • Ich sehe einen RSS-Feed, bin mir aber nicht sicher, wie dieser funktioniert oder ob er mir bei der Überwachung helfen kann.

  • Bietet drupal.org eine sauberere Lösung wie eine API? oder gibt es eine Möglichkeit, das Repository direkt zu überwachen?

  • Andere Lösungen sind willkommen

5voto

Mad Scientist Punkte 17347

Es gibt ein Kernmodul "Update Status", das prüft, ob Updates für Ihre installierten Module verfügbar sind. Sie können es entweder direkt verwenden, wenn das Ihren Bedürfnissen entspricht, oder die Quelle prüfen, wie das Modul die Daten anfordert.

4voto

Pascal MARTIN Punkte 384469

Anstatt zu versuchen, die Seite zu verschrotten, wie Sie sagten, könnte eine bessere Lösung darin bestehen, ihren RSS-Feed zu verwenden - in Ihrem Fall zum Beispiel : http://drupal.org/node/185969/release/feed

Der Vorteil ist, dass RSS ein klar definiertes Format ist: Es besteht eine geringere Wahrscheinlichkeit, dass in einer HTML-Suppe unnötige Informationen enthalten sind.

Um Daten aus diesem XML-Feed zu extrahieren, können Sie SimpleXML verwenden, um mit den XML-Daten "von Hand" zu arbeiten, oder eine Bibliothek wie SimplePie die RSS/ATOM kennt.

In Ihrem Fall müssen Sie die letzte Aktualisierung im Auge behalten - und jedes Mal, wenn Sie den RSS-Feed abrufen, prüfen, ob es eine Aktualisierung gibt, die aktueller ist als die letzte, die Sie beim letzten Mal gesehen haben.

In der XML-Datei für Ihr Marinelli-Modul sehen Sie, dass jeder Eintrag eine <pubDate> Tag, der seinem Datum entspricht; zum Beispiel :

<pubDate>Tue, 25 Aug 2009 07:28:26 +0000</pubDate>

Wenn heute der letzte Eintrag vom 25.08.2009 ist und morgen ein Eintrag vom 27.07.2010... Nun, das bedeutet, dass das Modul aktualisiert wurde ;-)

2voto

fabrik Punkte 13697

Was ist mit den eigenen Feeds der Website? http://drupal.org/node/185969/release/feed Abonnieren Sie ihn einfach in einem beliebigen RSS-Reader (z. B. Google Reader)

Was meinen Sie damit, dass Sie es programmatisch überprüfen müssen? Gibt es ein Backend, das die Updates ohne Benutzerinteraktion herunterlädt und installiert?

1voto

Pierre Buyle Punkte 4802

Sie können die Freigaben für ein Projekt erhalten unter http://updates.drupal.org/release-history/$project_name/$api_version siehe zum Beispiel http://updates.drupal.org/release-history/marinelli/6.x

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X