Domino 9 und frühere Versionen > ND7: Entwicklung
URLDownloadToFile() lädt nur, wenn Website zuvor geöffnet wurde
Silke Wolf:
Hallo,
mein Lotus Script Code lädt die Datei nur herunter, wenn ich sie zuvor per Internetexplorer geöffnet habe. Der selbe Code als Visual Basic unter Excel verlangt dies nicht und lädt alle Dateien ohne vorherigen Besuch der Webseite auf die Festplatte. Es muß lediglich einmal unter Visual Basic (Excel) der Zugriff auf die Homepage erfolgen, aber eben nicht für jeden weiteren Zugriff. (Ganz am Ende habe ich noch das VB im Excel geschrieben).
Frage: Wie bekomme ich es hin, dass mein Lotus Script Code die Dateien aus dem Internet lädt, ohne dass ich die einzelnen Webseiten zuvor besucht haben muss?
Hier mein Lotus Script Code:
Sub Click(Source As Button)
Print "Start: Bei Dokumenten erfolgt TextPDF-Download und Import"
On Error Goto ErrHandler
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Dim Url As String
Dim Url2 As String
Dim Schriftnummer As String
Dim Dateiname As String
'Dim aLog As AgentLog
'Dim VerarbeiteteDokumente As String
Dim importdatei As String
Dim object As NotesEmbeddedObject
Set ses = New NotesSession
Set db = ses.CurrentDatabase
Set col = db.UnprocessedDocuments
Set view = db.getView("pdftext-Import")
Set doc = view.GetfirstDocument
Set w = New NotesUIWorkspace
'Set aLog = New AgentLog("TextPDF Import")
'VerarbeiteteDokumtente=""
Call w.URLOpen( "http://depatisnet.dpma.de/")
Do Until doc Is Nothing
'Download from Internet
Schriftnummer = Cstr(doc.CY_PN_KD(0))
'Beispiel Hyperlink
'http://depatisnet.dpma.de/DepatisNet/depatisnet?action=textpdf&docid=DE03003827T1
Url2 = "http://depatisnet.dpma.de/DepatisNet/depatisnet?action=textpdf&docid=" & Schriftnummer
'Beispiel Dateiname
'C:\textpdf\DE03003827T1_text.pdf
Dateiname = "C:\textpdf\"+Schriftnummer+"_text.pdf"
'Url = Inputbox$("URL eingeben",,Url2)
Url = Url2
' Download-Funktion hier
DownloadFile Url, Dateiname
Call DeleteUrlCacheEntry(Url)
' Get the next document
Set doc = view.getNextDocument( doc )
i% = i% + 1
all% = col.Count
Print "Bitte warten ... " + Cstr(i%) + " Dokument(e) insgesamt heruntergeladen"
Loop
Print "Ende: TextPDFs wurden importiert. Siehe Protokoll."
Exit Sub
ErrHandler:
Resume Next
End Sub
###########################################
Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function
#############################################
Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (Byval pCaller As Long, Byval szURL As String, _
Byval szFileName As String, Byval dwReserved As Long, Byval lpfnCB As Long) As Long
Declare Function DeleteUrlCacheEntry Lib "wininet" Alias "DeleteUrlCacheEntryA" (Byval lpszUrlName As String) As Long
############################################
Use "Common"
********************************************************************
*** Visual Basic Code (als Makro in Excel, ausgeführt über eine Schaltfläche)
*** In der ersten Tabellenspalte stehen die Hyperlinks (pro Zelle ein Link),
*** in der zweiten Tabellenspalte die Dateinamen.
*** Wobei auch hier das Depatisnet einmalig zuvor geöffnet werden muss.
*** URL Localfilename
http://depatisnet.dpma.de/DepatisNet/depatisnet?action=textpdf&docid=DE000000001IT C:\textpdf\DE000000001IT_text.pdf
http://depatisnet.dpma.de/DepatisNet/depatisnet?action=textpdf&docid=DE0000001A C:\textpdf\DE0000001A_text.pdf
http://depatisnet.dpma.de/DepatisNet/depatisnet?action=textpdf&docid=DE03003827T1 C:\textpdf\DE03003827T1_text.pdf
********************************************************************
Option Explicit
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Public Sub DownloadFiles()
Dim rng As Range
For Each rng In Range("A2:A" & Application.Max(2, Cells(Rows.Count, 1).End(xlUp).Row))
If rng <> "" Then
URLDownloadToFile 0, rng.Text, rng.Offset(0, 1).Text, 0, 0
End If
Next
End Sub
m3:
Und Deine Frage lautet ..... ?
http://www.tty1.net/smart-questions_de.html#explicit
klaussal:
--- Zitat ---Und Deine Frage lautet ..... ?
--- Ende Zitat ---
Vermutlich: warum kann LN nicht das, was Excel kann ?
--- Zitat ---Der selbe Code als Visual Basic unter Excel verlangt dies nicht
--- Ende Zitat ---
mezz:
libcurl ist dein freund: http://curl.haxx.se/libcurl/
pram:
Das Problem liegt wohl an depatis. Wenn ich folgenden Link zum ersten Mal (oder nach dem Löschen der Sessioncookies) anklicke:
http://depatisnet.dpma.de/DepatisNet/depatisnet?action=textpdf&docid=DE0000001A werde ich auf
http://depatisnet.dpma.de/DepatisNet/depatisnet?window=1&space=menu&content=index&action=index&docid=DE0000001A umgeleitet und erhalte folgenden Hinweis
--- Zitat ---Herzlich willkommen zur Recherche in den Datenbeständen des DEPATIS-Systems des Deutschen Patent- und Markenamtes (DPMA)
Dieser Dienst wendet sich vor allem an Erstnutzer von Patentinformationen, vor allem in kleinen und mittleren Unternehmen, sowie an Schulen, Universitäten und anderen wissenschaftlichen Einrichtungen. Angesichts beschränkter Systemkapazität steht der Dienst insbesondere nicht dafür zur Verfügung, größere Datenmengen herunterzuladen. Daten und Dokumente in größerem Umfang können Sie gegen Erstattung der Bereitstellungskosten über unsere Datenabgabedienste DPMAdatenabgabe und DEPATISconnect erhalten. Personen, die die allgemeine Nutzung dieses Dienstes durch eine ungewöhnliche hohe Anzahl manueller oder softwareunterstützter Zugriffe zu behindern drohen (mehr als 5000 Datenbankzugriffe täglich durch dieselbe Person oder unter derselben IP-Adresse bzw. unter einem zusammengehörigen Adressbereich), können ohne weitere Vorwarnung von der Nutzung ausgeschlossen werden. Gleiches gilt bei Umgehungstatbeständen, durch die der Dienst über das angegebene Maß hinaus in Anspruch genommen wird.
--- Ende Zitat ---
Dabei wird ein JSESSIONID-cookie angelegt. Ein erneuter Klick auf den Link
http://depatisnet.dpma.de/DepatisNet/depatisnet?action=textpdf&docid=DE0000001A
öffnet dann auch das PDF (solange der Cookie existiert)
Dies wird gerne gemacht, damit Suchmaschinen etc. den Content nicht so einfach abgrasen können ;)
Gruß
Roland
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln