Autor Thema: HTML Seiten auslesen  (Gelesen 2362 mal)

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
HTML Seiten auslesen
« am: 12.12.06 - 12:50:27 »
Hallo,

ich habe eine Datenbank, in der ich einen Agenten erstellt habe, der von einem User per Aktionsbutton aufgerufen wird. Der Agent verbindet sich mit einer Internetseite und holt von dort die gesamte aufgerufenen Seite.

Ich lese die Daten aus dem Web per db.GetDocumentByURL

Wenn die Datenbank lokal liegt, funktioniert das ganze auch problemlos. Sobald die Datenbank auf dem Server installiert ist, funktioniert die Abfrage nur, wenn der Web Retriever Task auf dem Server gestartet ist.

Kann ich das ganze umgehen. Ich würde ungern den Server-Task starten, sondern lieber den Zugriff direkt vom Notes-Client ausführen lassen. Gibt es dafür eine Möglichkeit?

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: HTML Seiten auslesen
« Antwort #1 am: 12.12.06 - 12:55:37 »
1) Es gibt keine Internetseiten!

2) Du darfst halt die db von db.GetDocumentByURL nicht am Server öffnen, sondern immer nur lokal. Siehe auch die Designer-Hilfe:

Zitat
Instantiates a document in the database on which it is called and returns a NotesDocument object for it.  This method is typically used for either the Server Web Navigator or Personal Web Navigator database, but can be called on any database object.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: HTML Seiten auslesen
« Antwort #2 am: 12.12.06 - 12:58:29 »
1) Wie heißt es korrekt? Webseite? HTML-Seite? Datei, die über den Internet-Dienst WWW bereitgestellt wird?

2) OK, das habe ich ja nun auch schon gemerkt. Kann ich das irgendwie umgehen. Ggf. einen anderen Befehl nutzen o.ä.?

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: HTML Seiten auslesen
« Antwort #3 am: 12.12.06 - 13:01:11 »
1) Webseite, web page, Dokument im World Wide Web

2) Nein.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Jenson

  • Senior Mitglied
  • ****
  • Beiträge: 291
  • Geschlecht: Männlich
  • Geht nicht gibts nicht!
    • is Industrial Services AG
Re: HTML Seiten auslesen
« Antwort #4 am: 12.12.06 - 14:53:28 »
beteilige mich nur vorsichtig an dieser Diskussion :-), aber ich glaube das sowas in einem Java-Agenten machbar ist, ohne dass da ein Task auf dem Server laufen muss, oder?

Wir haben da mal was zu gemacht, ist allerdings ne Weile her und die genaue Info wie das damals war habe ich nicht mehr im kopf.

Jenson

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: HTML Seiten auslesen
« Antwort #5 am: 12.12.06 - 15:01:28 »
Mit einem Java Agenten kann man das machen, ich habe da in einem Buch mal ein Programmierbeispiel zu gelesen. Das Buch heißt "Java unter Lotus Domino" von Thomas Ekert. Ich weiß aber nicht, ob es rechtens ist, diesen Code hier einfach abzutippen.

Aber zum Prinzip funktioniert das per HttpUrlConnection, die dann einen InputStream zurückliefert, den man als String auslesen kann.

Offline tower2

  • Frischling
  • *
  • Beiträge: 3
    • www.schraepler.de
Re: HTML Seiten auslesen
« Antwort #6 am: 15.12.06 - 06:01:35 »
Hier ein Besipiel:

Die Parameter (url etc) werden dem Agenten per Dokument übergeben.

Java-Agent:
Code
import lotus.domino.*;
import java.io.*; 
import java.net.*;

public class JavaAgent extends AgentBase {

	public void NotesMain() {

		try {
			Session session = getSession();
			AgentContext agentContext = session.getAgentContext();
			Database db = agentContext.getCurrentDatabase();
			Agent agent = agentContext.getCurrentAgent();
			Document pdoc = db.getDocumentByID(agent.getParameterDocID());
			Document ndoc = db.createDocument();
			URL url=null;

			try {

			url = new URL(pdoc.getItemValueString("url"));

				}

				catch (Error e) {e.printStackTrace();

			}

    			// Create the Connection
    			URLConnection connection = url.openConnection ();
    			// Setup the connection parameters and request properties
    			connection.setDoOutput (false);
    			// Get the URL contents
    			String contentLine; String contents = "";
    			BufferedReader reader = new BufferedReader (new InputStreamReader
			(connection.getInputStream()));
    			while (null != (contentLine = reader.readLine ())) {contents += contentLine;
			}
 			//System.out.println(contents) ; 
			ndoc.replaceItemValue ("form", "DISK");
			ndoc.replaceItemValue ("disknr", pdoc.getItemValueString("disknr"));			
			ndoc.replaceItemValue ("url", pdoc.getItemValueString("url"));
    			ndoc.replaceItemValue ("disktext", contents);
  			ndoc.save(true,false);	 
		} catch(Exception e) {e.printStackTrace();
		}
	}
}


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz