Autor Thema: HTML per LotusScript anhand der URL in ein Feld als SourceText einlesen  (Gelesen 12226 mal)

Offline jofa

  • Senior Mitglied
  • ****
  • Beiträge: 265
  • Geschlecht: Männlich
  • try and error !Y!
Hi @all,

ich muss ein Script schreiben, welches mir anhand einer URL den SourceText der HTML Datei in ein Text (oder RT-) Feld schreibt, hat von Euch schon einmal jemand soetwas gemacht oder hat eine IDee bzw. nen link ?

Gruss JoFa

PS: Danach muss der Text geparsed werden um einzelne TAGs in bestimmte Felder zu schreiben
« Letzte Änderung: 21.01.03 - 17:31:23 von jofa »
--
MAINTANACE FREE ---
Impossible to fix. ;-)
ca. 110 Server unter Win32 und Linux ab 5.0.9a bis R6.5.5dt.
Clients: 5.0.9a, 5.0.10, 5.0.11, 5.0.12, 6.0.1CF1, 6.0.2CF2, 6.5, 6.5.1, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 7.0.

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... ich habe in meiner LotusScript-Seite unter Datenbanken eine Funktion abgelegt - "ImportFromFile" - mit der kannst du eine HTML-Datei in ein MultipleValue-Feld einlesen...

www.anton-tauscher.de/LotusScript

ata
Grüßle Toni :)

Offline jofa

  • Senior Mitglied
  • ****
  • Beiträge: 265
  • Geschlecht: Männlich
  • try and error !Y!
Hi ata,

vielen Dank für Deine schnelle Antwort, aber kann ich eine URL als Dateinamen zum Import angeben ?

Ich habe die HTML Datei ja leider nicht in meinem Filesystem liegen, sondern sie ist über TCPIP Port 80 per HTTP (ohne Proxy) zu erreichen ... reicht es wenn ich Dein Script so aufrufe:

--
DIM htmlRTF as Variant

htmlRTF = ImportFromFile( "http://www.ldd.com" )
--

Gruss JoFa
--
MAINTANACE FREE ---
Impossible to fix. ;-)
ca. 110 Server unter Win32 und Linux ab 5.0.9a bis R6.5.5dt.
Clients: 5.0.9a, 5.0.10, 5.0.11, 5.0.12, 6.0.1CF1, 6.0.2CF2, 6.5, 6.5.1, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 7.0.

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... hab ich so noch nicht verwendet, probiers einfach aus...

ata
Grüßle Toni :)

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... funktioniert leider nicht  :( :( :(

ata
Grüßle Toni :)

Offline jofa

  • Senior Mitglied
  • ****
  • Beiträge: 265
  • Geschlecht: Männlich
  • try and error !Y!
Hi ata,

geht leider nicht :-(

Gruss Jofa

PS Dennoch vielen Dank ... muss mal weiter versuchen ...
--
MAINTANACE FREE ---
Impossible to fix. ;-)
ca. 110 Server unter Win32 und Linux ab 5.0.9a bis R6.5.5dt.
Clients: 5.0.9a, 5.0.10, 5.0.11, 5.0.12, 6.0.1CF1, 6.0.2CF2, 6.5, 6.5.1, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 7.0.

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... es gibt Tools, mit denen man Pages aus dem Web sagen kann, vielleicht findest du ja was - WebCopier zum Beispiel - denn wenn du es auf der Platte hast funktioniert meine Funktion ja...

ata
Grüßle Toni :)

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
evtl. interessiert Euch das:

http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/d411094f7b11f873852566b300714ccb?OpenDocument

Der Trick ist über die Web.nsf bzw. die perweb.nsf zu gehen und dort einzugeben, daß alle HTML Seiten incl. Source Code in einem eigenen Feld gespeichert werden. Der Rest des Auslesens ist dann easy.

unten seht ihr als Anhang einen Screenie von der Einstellung in meiner perweb.nsf
« Letzte Änderung: 16.01.03 - 11:28:25 von Rob Green »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline jofa

  • Senior Mitglied
  • ****
  • Beiträge: 265
  • Geschlecht: Männlich
  • try and error !Y!
Hi @all,

also eines habe ich benerkt, dies scheint keine triviale rage gewesen zu sein, aber ich habe dazu zwei Möglichkeiten gefunden:

1. Mit LotsScript und wget für win32 (http://space.tin.it/computer/hherold/  <- aktualisiert) in einer Maske mit einem Feld A als TextList:

---snip---
Sub Click(Source As Button)
   Dim pid As Integer
   
   pid = Shell("wget.exe -F http://www.atnotes.de -Oy:\temp.htm",6)
   
   Dim w As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim test As Variant
   
   test = ImportFromFile( "y:\temp.htm" )
   
   Set uidoc = w.CurrentDocument
   Call uidoc.GotoField( "A" )
   Call uidoc.Inserttext(test)
   
End Sub

Function ImportFromFile( sFile As String ) As Variant
' Grossen Dank an ata (http://www.anton-tauscher.de/LotusScript/startdyn.htm)
' habe nur eine Zeile (Fett markiert) ändern müssen  ;D
    REM Eine Import-Funktion für die Praxis...
    ' # ... Rückgabewert = Array
'   On Error Goto ErrHandle
   ImportFromFile = ""
   If sFile <> "" Then
      Dim sRow As String
      Dim sTxt As String
      Dim fileNum As Integer
      Dim counter As Integer
      fileNum = Freefile()
      counter = -1
      sRow = ""
            ' # ... die Datei zum Lesen öffnen...
      Open sFile For Input As fileNum
      Do While Not Eof( fileNum )  
         Line Input #fileNum, sTxt
         counter = counter + 1
'         Redim Preserve sRow( 0 To counter )
'         sRow( counter ) = sTxt
         sRow = sRow + Chr(13) + Chr(10) + sTxt
      Loop
      Close fileNum' # ... schließen
            ' # ... Array zurückgeben...
      ImportFromFile = sRow  
      Print "Der Import ist abgeschlossen"
   End If
   Exit Function
ErrHandle:
   Close fileNum
   Print "Abbruch - es konnte keine Datei geöffnet werden"
   Exit Function
End Function
---snap---


2. Mit einem JavaAgenten:

---snip---
import lotus.domino.*;
import java.net.*;
import java.io.*;
import java.util.Vector;

public class GrabHTML extends AgentBase {

public void NotesMain()
{
   try
   {
      Session session = getSession();
      AgentContext agentContext = session.getAgentContext();
      Database db = agentContext.getCurrentDatabase();
      DocumentCollection dc = db.search("Form = \"RawHTML\"");

      if (dc.getCount() == 1)
      {
         Document doc = dc.getFirstDocument();

         URL url = new URL("http://www.atnotes.de");
         URLConnection conn = url.openConnection();
         conn.connect();
         InputStream is = conn.getInputStream();
         BufferedInputStream bis = new BufferedInputStream(is);

         StringBuffer buffer = new StringBuffer();
   
         int nextChar = 0;
//         String newLine=System.getProperty("line.separator");
         
         Vector stringMultiple = new Vector();

         while((nextChar = bis.read()) != -1)
         {
            if (nextChar == 10)
            {
               stringMultiple.addElement(buffer.toString());
               buffer = new StringBuffer(buffer.capacity());
            }
            else
               if (nextChar != 13)
                  buffer.append((char)nextChar);
         }
         
         stringMultiple.addElement(buffer.toString());
         
         doc.replaceItemValue("HTML", stringMultiple);
         doc.replaceItemValue("Subject", "Raw HTML");
         is.close();
         bis.close();
         doc.save();
      }

   }

   catch(MalformedURLException mal)
   {
      mal.printStackTrace();
   }
   catch(IOException ioe)
   {
      ioe.printStackTrace();
   }
   catch(Exception e)
   {
      e.printStackTrace();
   }
}
}
---snap---

Dazu wird noch eine Form benötigt namens "RawHTML" und den Felder:
- Form als Text
- Subject als Text
- HTML als TextList mit NewLine als Trennzeichen

Viel Spass und thx an ata und Rob :-)

Gruss JoFa

PS: Ich habe mich für Variante zwo entschieden  ;D ;D ;D
« Letzte Änderung: 22.01.03 - 08:46:26 von jofa »
--
MAINTANACE FREE ---
Impossible to fix. ;-)
ca. 110 Server unter Win32 und Linux ab 5.0.9a bis R6.5.5dt.
Clients: 5.0.9a, 5.0.10, 5.0.11, 5.0.12, 6.0.1CF1, 6.0.2CF2, 6.5, 6.5.1, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 7.0.

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
@JoFa

... das hat mich natürlich neugierig gemacht, und ich wollte es ausprobieren. Die Windows-Version bekomme ich leider nicht zum Laufen, ich erhalte bei wget die Fehlermeldung "File does not exist"

 :(

ata
Grüßle Toni :)

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
Lotusscript:
GetDocumentByURL()-Methode

So einfach ist das! Und die Links der Zielseite kriegst Du auf Wunsch noch dazu als getrenntes multi-value-Item...

PS: Java geht auch, Explorer-Komponenten und div. Winsock-nahe OCXe...

(Schwärm.... ) :D
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline jofa

  • Senior Mitglied
  • ****
  • Beiträge: 265
  • Geschlecht: Männlich
  • try and error !Y!
Hi ata,

hast ja Recht, ich habe den link aktualisiert: http://space.tin.it/computer/hherold/

Die Version, die ich gelinkt habe ist eine mit SSL, daher benötigst Du noch die entsprechenden LIBS, sind aber alle in dem o.a. Link erreichbar:

- wget mit / ohne SSL
- OpenSSL Libs

Gruss Jofa

PS: Zu der Lösung 1 habe ich noch ein Problem entdeckt, die shell ist oft noch nicht fertig, bevor der Import läuft ...
--
MAINTANACE FREE ---
Impossible to fix. ;-)
ca. 110 Server unter Win32 und Linux ab 5.0.9a bis R6.5.5dt.
Clients: 5.0.9a, 5.0.10, 5.0.11, 5.0.12, 6.0.1CF1, 6.0.2CF2, 6.5, 6.5.1, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 7.0.

Offline jofa

  • Senior Mitglied
  • ****
  • Beiträge: 265
  • Geschlecht: Männlich
  • try and error !Y!
Hi wflamme,

mit LotusScript habe ich es versucht, aber bin immer gescheitert und in den diversen Newsgroups (LDD und Google) habe ich meist nur tote Threads gefunden, die auf einen Fehler in Notes schliessen liessen, daher habe ich mich für die o.a. Farianten entschieden :-)

Nun muss ich den HTML Source nur noch parsen um Links zu filtern, die in ein Profil-Doku geschrieben werden um dann als Parameter für ein Java News Aplett dienen  ;D

Gruss JoFa
--
MAINTANACE FREE ---
Impossible to fix. ;-)
ca. 110 Server unter Win32 und Linux ab 5.0.9a bis R6.5.5dt.
Clients: 5.0.9a, 5.0.10, 5.0.11, 5.0.12, 6.0.1CF1, 6.0.2CF2, 6.5, 6.5.1, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 7.0.

Offline NotesBug

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Accept it, it is Notes !
@wflamme

GetDocumentByURL() funktioniert nur wenn auf dem Server der Web Retriever  läuft. Wenn Du die daten ohne diesen Task haben willst, scheint man um einen Java agenten nicht herum zu kommen. Ich habe auf diesem Weg eine XML Datei angefordert und gleich im Java geparst.

NotesBug

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
@wflamme

GetDocumentByURL() funktioniert nur wenn auf dem Server der Web Retriever  läuft. Wenn Du die daten ohne diesen Task haben willst, scheint man um einen Java agenten nicht herum zu kommen. Ich habe auf diesem Weg eine XML Datei angefordert und gleich im Java geparst.

Geht AFAIK auch mit lokaler perweb.nsf, diese muß nur in der Abeitsumgebung unter Erweitert /WebRetriever eingetragen sein (die deutschen Namen sind jetzt aus dem Bauch raus, ich habe die US-Version).

Damit funkt das Klasse, wenn auch etwas langsam - ich betreibe mein DominoDarkSide so...

Java hat natürlich bessere Performance, aber die perweb-Lösung ist natürlich saubequem  ;D

BTW: Kennt jemand einen einfachen Java-Weg, um XML-codiertes HTML mit &lt; ... &gt;-Tags in Plain-Text zu wandeln? Probleme:
- Umgang mit ungültigem HTML
- ich will alle hyperlink-Infos behalten, also <a href="..."> darf nicht weggeworfen werden
« Letzte Änderung: 22.01.03 - 15:42:54 von wflamme »
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
BTW: Kennt jemand einen einfachen Java-Weg, um XML-codiertes HTML mit &lt; ... &gt;-Tags in Plain-Text zu wandeln? Probleme:
- Umgang mit ungültigem HTML
- ich will alle hyperlink-Infos behalten, also <a href="..."> darf nicht weggeworfen werden

... hab was gefunden:

http://htmlparser.sourceforge.net/
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline jofa

  • Senior Mitglied
  • ****
  • Beiträge: 265
  • Geschlecht: Männlich
  • try and error !Y!
super link, das kann ich gut verwenden :-)

Danke und Gruss JoFa
--
MAINTANACE FREE ---
Impossible to fix. ;-)
ca. 110 Server unter Win32 und Linux ab 5.0.9a bis R6.5.5dt.
Clients: 5.0.9a, 5.0.10, 5.0.11, 5.0.12, 6.0.1CF1, 6.0.2CF2, 6.5, 6.5.1, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 7.0.

Offline pippo

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 580
  • I love YaBB 1G - SP1!
Hallo,
habe den JavaCode bei einer "normalen Seite" getestet. Er hat sofort funktioniert.
> Kompliment!

Nun habe ich aber eine aspSeite, wo ich einen Zeitraum übergeben kann. Als Ergebnis werden Daten geliefert, welche für diesen Zeitraum zutreffen.

Leider funktioniert hier der Agent nicht mehr.

Hat jemand eine Idee wo ich ansetzen kann

Schönen Tag

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
habe den JavaCode bei einer "normalen Seite" getestet. Er hat sofort funktioniert.
> Kompliment!
...
Nun habe ich aber eine aspSeite, wo ich einen Zeitraum übergeben kann. Als Ergebnis werden Daten geliefert, welche für diesen Zeitraum zutreffen.

Leider funktioniert hier der Agent nicht mehr.
Hat jemand eine Idee wo ich ansetzen kann
Ja. Deine funktioniert/funktioniert nicht Dichotomie lädt durchaus gutwillige Mitglieder dieses Forums, nicht gerade ein dir zur helfen.
Kannst du das viellicht mal ein bischen genauer erläutern.
Werden Exception geworfen? Wenn ja, bitte Stacktrace posten. Oder noch besser, du postest deinen Source code.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline pippo

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 580
  • I love YaBB 1G - SP1!
Hallo,
jetzt läuft es!

Grund: nicht nur Rechte auf Server erhöhen, sondern auch "Laufzeit-Sicherheitsstufe des Agenten (2. Reiter der Agenteneigenschaften) erhöhen "

Schönen Tag

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz