-
Hintergrund
-
Die vorliegende Erfindung bezieht sich auf eine automatisierte Interaktion mit Computersoftware-Anwendungen und im Besonderen auf eine automatisierte Crawler-Durchsuchung von computergestützten Dokumenten oder Software-Anwendungen.
-
Automatisierte Software-Werkzeuge werden seit langem verwendet, um eigenständig mit Computersoftware-Anwendungen zu interagieren, z. B. um zu Zuordnungszwecken die verschiedenen Komponenten einer Anwendung zu ermitteln. Ein solches, gemeinhin als „Crawler” bezeichnetes Werkzeug wird häufig zum Navigieren einer Website verwendet, indem es deren Web-Seiten und andere computergestützte Dokumente entlang von Hyperlinks wie beispielsweise URLs (Universal Resource Locators, einheitliche Quellenanzeiger) durchläuft, die in die Dokumente eingebettet sind und den Ort anderer Dokumente angeben.
-
Gegenwärtige Crawler arbeiten üblicherweise auf der Ebene des Hypertext-Übertragungsprotokolls HTTP (Hypertext Transport Protocol), indem sie HTTP-Anforderungen senden und aus den resultierenden HTTP-Antworten weitere Anforderungen erzeugen. Diese Crawler können funktionieren, ohne sich mit der Bedeutung der hinter den Anforderungen stehenden Aktionen, den Einschränkungen bezüglich der Reihenfolge dieser Aktionen und dem erwarteten Ergebnis des Durchführens einer jeden Aktion befassen zu müssen.
-
Kurzdarstellung
-
Ein Aspekt der Offenbarung stellt ein Verfahren, System, Computerprogrammprodukt und/oder eine Vorrichtung für eine Web-Crawler-Durchsuchung von Web-gestützten Inhalten bereit. Bei der Ausführungsform kann eine interaktive Sitzung zwischen einem Bot-Programm für die Crawler-Suche und einer Website hergestellt werden. Das Bot-Programm für die Crawler-Suche kann einen Sitzungszustand, der für einen Benutzerzustand zum Interagieren mit einer oder mehreren Websites steht, einen Satz von Bedingungen und einen Satz von Szenarien definieren, die abhängig davon, ob der Satz von Bedingungen erfüllt ist, wahlweise aktiviert werden. Der Satz von Bedingungen kann eine Zustandsbedingung enthalten, die angibt, ob der Benutzerzustand gleich einem vorkonfigurierten Wert ist. Der Satz von Bedingungen enthält darüber hinaus eine Bedingung für die Inhaltsübereinstimmung. Während der interaktiven Sitzung kann das Bot-Programm für die Crawler-Suche Inhalt von der Website empfangen. Das Bot-Programm für die Crawler-Suche kann den von der Website stammenden Inhalt analysieren und den analysierten Inhalt mit einem zuvor definierten Satz von Elementen vergleichen, um zu ermitteln, ob die Bedingung für die Inhaltsübereinstimmung erfüllt ist. Wenn die Bedingung für die Inhaltsübereinstimmung erfüllt ist und die Zustandsbedingung erfüllt ist, kann das Bot-Programm für die Crawler-Suche die von dem Bot-Programm für die Crawler-Suche definierten Szenarien aktivieren, was nicht der Fall ist, wenn die Bedingung für die Inhaltsübereinstimmung und die Zustandsbedingung nicht erfüllt sind.
-
Ein Aspekt der Offenbarung stellt ein Verfahren, System, Computerprogrammprodukt und/oder eine Vorrichtung für eine Crawler-Suche auf der Grundlage eines Szenarios bereit. Das Verfahren kann ein vordefiniertes Szenario auswählen, bei dem jedes der Merkmale aus einem vordefinierten Satz von Vor-Interaktionsmerkmalen, die dem Szenario zugehörig sind, an einem Punkt einer Crawler-Suchsitzung vorhanden ist. Das Verfahren kann für ein momentanes Objekt der Crawler-Suchsitzung jede der Interaktionen aus einem vordefinierten Satz von Interaktionen durchführen, die dem Szenario zugehörig sind. Das Verfahren kann außerdem bestimmen, welche der Merkmale aus einem vordefinierten Satz von Nach-Interaktionsmerkmalen, die dem Szenario zugehörig sind, während der Crawler-Suchsitzung nach dem Durchführen der Interaktionen vorhanden sind. Ein momentaner Zustand der Crawler-Suchsitzung kann als ein vordefinierter Zustand ermittelt werden, der einem beliebigen der Nach-Interaktionsmerkmale zugehörig ist, die während der Crawler-Suchsitzung nach dem Durchführen der Interaktionen vorhanden sind.
-
Andere Aspekte der Offenbarung legen Einzelheiten zu Systemen, Vorrichtungen und/oder Computerprogrammprodukten dar, die das obige Verfahren durchführen und/oder in Verbindung mit dem Verfahren verwendet werden.
-
Kurzbeschreibung der verschiedenen Ansichten der Zeichnungen
-
1 ist eine vereinfachte Konzeptdarstellung eines Systems für eine Crawler-Suche auf der Grundlage eines Szenarios, das gemäß einer Ausführungsform der Offenbarung gestaltet ist und betrieben werden kann;
-
2 ist eine vereinfachte Ablaufplandarstellung eines Verfahrens für den Betrieb des Systems aus 1, das gemäß einer Ausführungsform der Offenbarung betrieben werden kann;
-
3 ist eine vereinfachte Ablaufplandarstellung eines Verfahrens für den Betrieb des Systems aus 1, das gemäß einer Ausführungsform der Offenbarung betrieben werden kann; und
-
4 ist eine vereinfachte Blockschaubilddarstellung einer Hardware-Realisierung eines Datenverarbeitungssystems, das gemäß einer Ausführungsform der Offenbarung gestaltet ist und betrieben werden kann.
-
Ausführliche Beschreibung
-
Die Offenbarung wird nun in Zusammenhang mit einer oder mehreren Ausführungsformen beschrieben, wobei die Beschreibung allerdings so zu verstehen ist, dass sie Ausführungsformen der Erfindung insgesamt veranschaulicht, und nicht so zu deuten ist, dass sie andere Ausführungsformen der Erfindung auf die gezeigten Ausführungsformen beschränkt. Es dürfte offensichtlich sein, dass verschiedene Abwandlungen möglich sind, die – auch wenn sie hier nicht ausdrücklich gezeigt sind – dennoch innerhalb des gedanklichen Wesensgehalts und inhaltlichen Umfangs der Erfindung liegen.
-
Der Fachmann weiß, dass Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt ausgeführt werden können. Entsprechend können Aspekte der vorliegenden Erfindung in Gestalt einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (z. B. Firmware, residente Software, Mikrocode usw.) oder in Gestalt einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte vereint, welche zusammenfassend als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung in Gestalt eines Computerprogrammprodukts vorliegen, das in einem oder mehreren computerlesbaren Medien ausgeführt ist, auf denen computerlesbarer Programmcode enthalten ist.
-
Dabei kann eine beliebige Kombination aus einem oder mehreren computerlesbaren Medien genutzt werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann z. B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem bzw. eine entsprechende Vorrichtung oder Einheit oder aber eine beliebige geeignete Kombination der vorgenannten Elemente sein, ohne jedoch auf diese beschränkt zu sein. Konkretere Beispiele des computerlesbaren Speichermediums würden Folgendes aufweisen (wobei dies eine nicht vollständige Liste darstellt): eine elektrische Verbindung mit einem oder mehreren Leitern, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren, programmierbaren Nur-Lese-Speicher (EPROM- oder Flash-Speicher), einen Lichtwellenleiter, einen tragbaren CD-ROM, eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination der vorgenannten Elemente. In Verbindung mit diesem Dokument kann ein computerlesbares Speichermedium jedes physische Medium sein, das ein Programm enthalten oder speichern kann, welches von oder in Zusammenhang mit einem der Befehlsausführung dienenden System, einer Vorrichtung oder Einheit verwendet wird.
-
Ein computerlesbares Signalmedium kann ein weitergeleitetes Datensignal mit darin enthaltenem computerlesbarem Programmcode enthalten, z. B. als Basisband oder als Teil einer Trägerwelle. Ein derartiges weitergeleitetes Signal kann eine beliebige Vielfalt von unterschiedlichen Formen annehmen, einschließlich, ohne auf diese beschränkt zu sein, eine elektromagnetische Form, eine optische Form oder auch jede geeignete Kombination derselben. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm übermitteln, weiterleiten oder übertragen kann, welches für die Nutzung durch oder in Verbindung mit einem/einer der Befehlsausführung dienenden System, Vorrichtung oder Einheit vorgesehen ist.
-
Auf einem computerlesbaren Medium enthaltener Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, einschließlich, ohne auf diese beschränkt zu sein, drahtlose, drahtgebundene, Lichtwellenleiterkabel-, HF- und andere Medien oder eine beliebige Kombination derselben. Computerprogrammcode für das Ausführen von Arbeitsschritten für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben sein, unter anderem eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder ähnliche sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder aber vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernt angeordnete Computer über eine beliebige Art von Netzwerk, unter anderem ein Nahbereichsnetz (LAN) oder ein Weitverkehrsnetz (WAN), mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann mit einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
-
Im Folgenden werden Aspekte der vorliegenden Erfindung unter Bezugnahme auf Darstellungen von Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Dabei dürfte klar sein, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaubildern durch Computerprogrammbefehle realisiert werden kann/können. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputers, Spezialcomputers oder einer anderweitigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Befehle, die über den Prozessor des Computers oder der anderweitigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel erzeugen, mit dem die Funktionen/Handlungen realisiert werden können, die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegeben sind.
-
Diese Computerprogrammbefehle können auch auf einem computerlesbaren Medium gespeichert werden, das einen Computer, eine anderweitige programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem computerlesbaren Medium gespeicherten Befehle einen Gegenstand hervorbringen, der Befehle aufweist, mit denen die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegebene Funktion/Handlung realisiert wird.
-
Die Computerprogrammbefehle können zudem in einen Computer, eine anderweitige programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um zu veranlassen, dass eine Reihe von Betriebsschritten auf dem Computer, der anderweitigen programmierbaren Datenvorrichtung oder den anderen Einheiten ausgeführt wird, so dass die Befehle, die auf dem Computer oder der anderweitigen Datenverarbeitungsvorrichtung ausgeführt werden, Prozesse bereitstellen, mit denen die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegebenen Funktionen/Handlungen realisiert werden.
-
Im Folgenden wird auf 1 Bezug genommen, bei der es sich um eine vereinfachte Konzeptdarstellung eines Systems für eine Crawler-Suche auf der Grundlage eines Szenarios handelt, das gemäß einer Ausführungsform der Erfindung gestaltet ist und betrieben werden kann. In dem System aus 1 ist ein Crawler 100 so konfiguriert, dass er gemäß herkömmlichen Methoden computergestützte Dokumente oder Software-Anwendungen durchsucht, und zusätzlich so konfiguriert, dass er wie im Folgenden beschrieben funktioniert. Ein Satz von einem oder mehreren Szenarien 102 wird definiert, so dass jedes Szenario Folgendes beinhaltet:
- • einen vordefinierten Satz von Vor-Interaktionsmerkmalen;
- • einen vordefinierten Satz von Interaktionen;
- • einen vordefinierten Satz von Nach-Interaktionsmerkmalen; und/oder
- • einen vordefinierten Satz von Zuständen, wobei jeder Zustand einem oder mehreren der Nach-Interaktionsmerkmale zugehörig ist.
-
Der Crawler 100 enthält vorzugsweise eine Szenario-Auswahleinheit 104 bzw. ist andernfalls so konfiguriert, dass er mit ihr zusammenarbeitet, wobei diese so konfiguriert ist, dass sie eines oder mehrere der Szenarien 102 auswählt, wobei ein Szenario ausgewählt wird, wenn jedes der Merkmale aus dem vordefinierten Satz von Vor-Interaktionsmerkmalen, die dem Szenario zugehörig sind, an einem Punkt einer Crawler-Suchsitzung vorhanden ist, z. B. nachdem während einer Crawler-Suchsitzung der Web-Anwendung eine Web-Seite von einer Web-Anwendung empfangen wurde. Wenn daher z. B. der Satz von Vor-Interaktionsmerkmalen des Szenarios die Merkmale <Loggedln='Yes'> und <CurrentWebPage includes 'Logout' button> enthält, überprüft die Szenario-Auswahleinheit 104 vorzugsweise einen Datenspeicher mit Zustandsdaten 106, die während der Crawler-Suchsitzung von der Crawler-Suchsitzung verwaltet werden, um zu ermitteln, ob der der Sitzung zugehörige Benutzer, wie er z. B. durch den Crawler 100 dargestellt ist, momentan bei der Web-Anwendung angemeldet ist, und überprüft zudem, ob die von der Web-Anwendung bereitgestellte momentane Web-Seite eine Schaltfläche mit der Bezeichnung „Logout” enthält. Wenn jedes der Merkmale vorhanden ist, wählt die Szenario-Auswahleinheit 104 das Szenario aus.
-
Der Crawler 100 enthält außerdem vorzugsweise einen Interaktionsagenten 108 bzw. ist so konfiguriert, dass er mit ihm zusammenarbeitet, wobei dieser so konfiguriert ist, dass er jede der Interaktionen aus dem vordefinierten Satz von Interaktionen des Szenarios mit einem momentanen Objekt der Crawler-Suchsitzung durchführt, z. B. mit der empfangenen Web-Seite. Um beim aktuellen Beispiel zu bleiben, kann der Satz von Interaktion somit die Interaktion <Press the ”Logout” button> enthalten, die der Interaktionsagent 108 dann mit der empfangenen Web-Seite durchführt.
-
Der Crawler 100 beinhaltet außerdem vorzugsweise einen Nach-Interaktionsbewerter 110 bzw. ist so konfiguriert, dass er mit ihm zusammenarbeitet, wobei dieser so konfiguriert ist, dass er bestimmt, welche der Nach-Interaktionsmerkmale des Szenarios während der Crawler-Suchsitzung vorhanden sind, nachdem der Interaktionsagent 108 die Interaktionen aus dem vordefinierten Satz von Interaktionen des Szenarios durchgeführt hat. Wenn der Satz von Nach-Interaktionsmerkmalen das Merkmal <CurrentWebPage includes ”Thank you”> enthält, bewertet der Nach-Interaktionsbewerter 110 somit im aktuellen Beispiel vorzugsweise eine Web-Seite, die von der Web-Anwendung als Reaktion auf das Aktivieren der Schaltfläche „Logout” zurückgegeben wurde, um zu ermitteln, ob die zurückgegebene Web-Seite die Phrase „Thank you” enthält. Der Nach-Interaktionsbewerter 110 kann bestimmen, welche der Nach-Interaktionsmerkmale in beliebigen Antworten, die durch die Interaktionen hervorgerufen wurden, und/oder in den Zustandsdaten 106 vorhanden sind.
-
Der Crawler 100 enthält außerdem vorzugsweise einen Zustandsverwalter 112 bzw. ist so konfiguriert, dass er mit ihm zusammenarbeitet, wobei dieser so konfiguriert ist, dass er einen momentanen Zustand der Crawler-Suchsitzung ermittelt, wobei der momentane Zustand einem beliebigen der Nach-Interaktionsmerkmale des Szenarios zugehörig ist, die der Nach-Interaktionsbewerter 110 als während der Crawler-Suchsitzung vorhanden ermittelt. Wenn der Nach-Interaktionsbewerter 110 ermittelt, dass das Merkmal <CurrentWebPage includes ”Thank you”> in der Webseite vorhanden ist, die von der Web-Anwendung als Reaktion auf das Aktivieren der Schaltfläche „Logout” zurückgegeben wurde, und dass ein Zustand <Loggedln='No'> dem Nach-Interaktionsmerkmal <CurrentWebPage includes ”Thank you”> des Szenarios zugehörig ist, kann der Zustandsverwalter 112 im aktuellen Beispiel ermitteln, dass der Zustand des der Crawler-Suchsitzung zugehörigen Benutzers <Loggedln='No'>, lautet, und diese Information in die Zustandsdaten 106 aufnehmen.
-
Aus dem aktuellen Beispiel sollte offensichtlich werden, dass das System aus 1 anstelle des zufälligen oder auf einer heuristischen Grundlage beruhenden Durchsuchens einer Web-Anwendung auch dafür verwendet werden kann, einem Crawler zu gestatten, auf intelligente Art und Weise mit einer Web-Anwendung zu interagieren, indem sichergestellt wird, dass der Crawler nur dann eine Schaltfläche „Logout” auf einer Web-Seite aktiviert, wenn der Crawler momentan bei der Web-Anwendung angemeldet ist.
-
Das System aus 1 kann dazu verwendet werden, computergestützte Dokumente oder Software-Anwendungen unter Verwendung von Interaktionen auf der Grundlage eines Szenarios wie oben beschrieben zu durchsuchen, wobei vordefinierte Szenarien anwendbar sind, oder andernfalls herkömmliche Methoden zu nutzen.
-
Jedes der in 1 gezeigten Elemente wird vorzugsweise durch einen oder mehrere Computer wie z. B. einen Computer 114 realisiert, indem die Elemente in Form von Computer-Hardware und/oder Computer-Software, die auf einem nicht vorübergehenden, computerlesbaren Medium enthalten ist, gemäß herkömmlichen Methoden realisiert werden.
-
Im Folgenden wird auf 2 Bezug genommen, bei der es sich um eine vereinfachte Ablaufplandarstellung eines beispielhaften Verfahrens für den Betrieb des Systems aus 1 handelt, das gemäß einer Ausführungsform der Erfindung betrieben werden kann. In dem Verfahren aus 2 wird mit Blick auf einen Satz von computergestützten Dokumenten und/oder eine Software-Anwendung eine Crawler-Suchsitzung begonnen (Schritt 200). An einem beliebigen Punkt der Crawler-Suchsitzung wird das betreffende Szenario ausgewählt (Schritt 204), wenn jedes der einem vordefinierten Szenario zugehörigen Interaktionsmerkmale vorhanden ist (Schritt 202). Jede der Interaktionen aus einem vordefinierten Satz von Interaktionen, die dem Szenario zugehörig sind, wird durchgeführt (Schritt 206). Etwaige Nach-Interaktionsmerkmale, die dem Szenario zugehörig und während der Crawler-Suchsitzung nach der Durchführung der Interaktionen vorhanden sind, werden bestimmt (Schritt 208). Anhand eines vordefinierten Satzes von Zuständen, die einem beliebigen der Nach-Interaktionsmerkmale zugehörig sind, welche während der Crawler-Suchsitzung nach dem Durchführen der Interaktionen vorhanden sind, wird ein momentaner Zustand der Crawler-Suchsitzung ermittelt (Schritt 210).
-
Im Folgenden wird auf 3 Bezug genommen, bei der es sich um eine vereinfachte Ablaufplandarstellung eines beispielhaften Verfahrens für den Betrieb des Systems aus 1 handelt, das gemäß einer Ausführungsform der Erfindung betrieben werden kann. In dem Verfahren aus 3 wird mit Blick auf einen Satz von computergestützten Dokumenten und/oder eine Software-Anwendung eine Crawler-Suchsitzung begonnen (Schritt 300). Wenn an einem beliebigen Punkt während der Crawler-Suchsitzung ein Szenario ausgewählt werden kann (Schritt 302), z. B. gemäß dem Verfahren aus 2, wird das Szenario z. B. gemäß dem Verfahren aus 2 verarbeitet (Schritt 304), und wenn ein Szenario nicht ausgewählt werden kann, z. B. wenn keines der einem vordefinierten Szenario zugehörigen Vor-Interaktionsmerkmale vorhanden ist, kann eine Crawler-Suche gemäß herkömmlichen Methoden durchgeführt werden (Schritt 306). Die Crawler-Suchsitzung kann beendet werden, wenn eine Beendigungsbedingung erfüllt ist (Schritt 308).
-
Bezugnehmend auf 4 veranschaulicht das Blockschaubild 400 eine beispielhafte Hardware-Realisierung eines Datenverarbeitungssystems, gemäß der eine oder mehrere Komponenten/Methodiken der Erfindung (z. B. die in Zusammenhang mit den 1 bis 3 beschriebenen Komponenten/Methodiken) gemäß einer Ausführungsform der Erfindung realisiert sein können.
-
Wie gezeigt, können die Methoden zum Steuern des Zugriffs auf mindestens eine Ressource gemäß einem Prozessor 410, einem Arbeitsspeicher 412, E/A-Einheiten 414 und einer Netzwerkschnittstelle 416 realisiert sein, die über einen Computerbus 418 oder eine anderweitige Verbindungsanordnung verbunden sind.
-
Bei einer Ausführungsform findet die Crawler-Suchsitzung zwischen einem Bot-Programm für die Crawler-Suche und einer Website (oder einer anderen adressierbaren, Webgestützten Ressource) statt. Im vorliegenden Kontext bezieht sich die Crawler-Suche auf eine Crawler-Suche im Web, die durch einen Web-Crawler oder ein Bot-Programm für die Crawler-Suche durchgeführt wird. Das Bot-Programm für die Crawler-Suche ist eine eigenständige oder halb eigenständige Software-Anwendung, die in der Lage ist, auf methodische, automatisierte Art und Weise bzw. auf geordnete Art und Weise mit einer oder mehreren Websites zu interagieren. Andere häufig verwendete Bezeichnungen für ein Bot-Programm für die Crawler-Suche sind Ant, automatischer Indexierer, Bot, Web-Spider, Web-Robot und/oder Web-Scutter. Die Crawler-Suche im Web dient zur Bereitstellung von aktuellen Web-Daten, die von anderen Programmen wie z. B. Suchmaschinen verwendet werden können.
-
Bei einer Ausführungsform kann das offenbarte Bot-Programm für die Crawler-Suche dazu verwendet werden, eine Kopie aller besuchten Seiten zur späteren Verarbeitung durch eine Suchmaschine zu erstellen, welche die heruntergeladenen Seiten indexiert, um schnelle Suchvorgänge zu ermöglichen. Bot-Programme für die Crawler-Suche können auch zum Automatisieren von Wartungsarbeiten an einer Website verwendet werden, z. B. zum Überprüfen von Verknüpfungen oder Bestätigen von HTML-Code. Darüber hinaus können die Bot-Programme für die Crawler-Suche auch dazu dienen, bestimmte Informationsarten von Web-Seiten zu sammeln, indem sie z. B. eMail-Adressen erfassen.
-
Bei einer Ausführungsform können die offenbarten Bot-Programme für die Crawler-Suche im Gegensatz zu herkömmlichen Web-Crawlern mit Websites interagieren, die dynamischen Inhalt bereitstellen. Die Bot-Programme für die Crawler-Suche können dabei einen Website-Zustand ermitteln, der für den dynamischen Inhalt relevant ist, und Aktionen veranlassen (z. B. Szenarien aktivieren), die für diesen Zustand spezifisch sind. So können die Bot-Programme für die Crawler-Suche z. B. eine zuvor definierte Eingabe auf der Website bereitstellen, um eine Änderung an dem dynamischen Inhalt der Website zu bewirken. Die Web-Crawler können z. B. einen momentanen Website-Zustand erkennen, der angibt, dass ein Benutzer nicht angemeldet ist, und dann eine Eingabe bereitstellen, um den Zustand der Website in einen Anmelde-Zustand zu ändern. Die Web-Bots können Aktionen bewirken, die spezifisch für einen Zustand einer Website sind, danach den empfangenen Website-Inhalt analysieren und diesen Inhalt mit den erwarteten Ergebnissen vergleichen, wobei sie – abhängig davon, ob die zurückgegebenen Ergebnisse zufriedenstellend sind – verschiedene Aktionen durchführen. Anders ausgedrückt: Die Bot-Programme für die Crawler-Suche können logisches Verhalten einführen, um Benutzerinteraktionen für verschiedenste Zustände von Fensteranzeigen zu simulieren.
-
Dies macht die offenbarten Bot-Programme für die Crawler-Suche für Programmierzwecke deutlich effizienter als herkömmliche Web-Crawler, da sie für spezifische Funktionen programmiert werden können, die sich realisieren lassen, ohne dass ein Spektrum an Möglichkeiten einer gegebenen Website überschritten wird. Darüber hinaus können die offenbarten Bot-Programme für die Crawler-Suche Informationen sammeln, die sich mit herkömmlichen Web-Crawlern nicht sammeln lassen, da sie Eingaben bereitstellen können, um Änderungen am dynamischen Inhalt von Websites, Web-Anwendungen oder Web-Diensten zu veranlassen.
-
Dabei sollte klar sein, dass der Begriff „Prozessor” in der hier vorliegenden Verwendung jede beliebige Verarbeitungseinheit beinhalten soll, z. B. eine Einheit mit einer CPU (Central Processing Unit, Zentraleinheit) und/oder einer anderen Verarbeitungsschaltung. Ebenso klar sollte sein, dass sich der Begriff „Prozessor” auf mehr als nur eine Verarbeitungseinheit beziehen kann und dass verschiedene Elemente, die einer Verarbeitungseinheit zugehörig sind, durch andere Verarbeitungseinheiten gemeinsam genutzt werden können.
-
Der Begriff „Arbeitsspeicher” soll in der hier vorliegenden Bedeutung einen Arbeitsspeicher beinhalten, der einem Prozessor oder einer CPU zugehörig ist, wie beispielsweise ein RAM, ROM, eine fest installierte Arbeitsspeichereinheit (z. B. eine Festplatte), eine wechselfähige Arbeitsspeichereinheit (z. B. eine Diskette), ein Flash-Arbeitsspeicher usw. Ein derartiger Arbeitsspeicher kann als ein computerlesbares Speichermedium betrachtet werden.
-
Zusätzlich sollen die Begriffe „Eingabe-/Ausgabe-Einheiten” bzw. „E/A-Einheiten” in der hier vorliegenden Bedeutung z. B. eine oder mehrere Eingabeeinheiten (z. B. Tastatur, Maus, Scanner usw.) zum Eingeben von Daten in die Verarbeitungseinheit und/oder eine oder mehrere Ausgabeeinheiten (z. B. Lautsprecher, Anzeige, Drucker, usw.) zum Bereitstellen von Ergebnissen beinhalten, die der Verarbeitungseinheit zugehörig sind.
-
Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und den Betrieb möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der Erfindung. Somit kann jeder Block der Ablaufpläne oder Blockschaubilder ein Modul, Segment oder einen Code-Teil darstellen, der einen oder mehrere ausführbare Befehle aufweist, mit denen sich die angegebene(n) logische(n) Funktion(en) realisieren lässt/lassen. Zu beachten ist ferner, dass bei manchen alternativen Ausführungsformen die in dem Block erwähnten Funktionen in einer anderen Reihenfolge als der in den Figuren genannten auftreten können. So können zwei aufeinanderfolgend dargestellte Blöcke tatsächlich im Wesentlichen gleichzeitig stattfinden, oder die Blöcke können mitunter in umgekehrter Reihenfolge ausgeführt werden, wobei dies abhängig von der betreffenden Funktionalität ist. Ebenfalls erwähnenswert ist, dass jeder Block der Blockschaubilder und/oder der Ablaufplan-Darstellung sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplan-Darstellung durch Spezialsysteme auf der Grundlage von Hardware, welche die angegebenen Funktionen oder Handlungen oder Kombinationen hiervon ausführen, oder durch Kombinationen von Spezial-Hardware- und Computerbefehlen realisiert werden kann/können.
-
Es dürfte deutlich geworden sein, dass jedes der oben beschriebenen Elemente als ein Computerprogrammprodukt realisiert sein kann, das in einem computerlesbaren Medium enthalten ist, z. B. in Form von Computerprogrammbefehlen, die auf einem magnetischen oder optischen Speichermedium gespeichert oder in Computer-Hardware eingebettet sind, und dass sie durch einen Computer ausgeführt werden können oder anderweitig für einen Computer zugreifbar sein können (nicht gezeigt).
-
Auch wenn die hier genannten Verfahren und Vorrichtungen womöglich mit Blick auf spezifische Computer-Hardware oder -Software beschrieben wurden, sollte offensichtlich sein, dass die hier beschriebenen Verfahren und Vorrichtungen auch unter Verwendung herkömmlicher Methoden in Form von Computer-Hardware oder -Software realisiert werden könnten.
-
Auch wenn die Erfindung mit Blick auf eine oder mehrere spezifische Ausführungsformen beschrieben wurde, ist die Beschreibung als Veranschaulichung der Erfindung insgesamt beabsichtigt und sollte nicht als Beschränkung der Erfindung auf die gezeigten Ausführungsformen verstanden werden. Der Fachmann weiß, dass verschiedene Abwandlungen möglich sind, die – auch wenn sie hier nicht ausdrücklich gezeigt sind – dennoch innerhalb des gedanklichen Wesensgehalts und inhaltlichen Umfangs der Erfindung liegen.