Batch downloaden van JPG

rmag
Pro Member
Pro Member
Berichten: 262
Lid geworden op: 29 Nov 2008

Batch downloaden van JPG

Berichtdoor rmag » 31 Jan 2017, 19:03

Van de webcam http://viaduc.wallorail.be wil ik een groot aantal JPG bestanden.

Ze zijn te downloaden in de vorm van:
'http://viaduc.wallorail.be/images/histo/saving/wm/VZT_20170128_165542.jpg
http://viaduc.wallorail.be/images/histo ... 114329.jpg
http://viaduc.wallorail.be/images/histo ... 114346.jpg

Nu zoek ik een batch download programma. Ik heb reeds DownloadThemAll als AddOn voor FireFox geprobeerd maar daar lukt het niet mee.

Kent er iemand een Batch donwload programma die een reeks van JPG bestanden kan downloaden ?

Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 4183
Lid geworden op: 03 Jan 2010
Locatie: 127.0.0.1

Re: Batch downloaden van JPG

Berichtdoor honda4life » 31 Jan 2017, 19:24

Wil er wel eens een python scriptje van maken, is niet zo heel moeilijk.
Zelf python aan de praat krijgen en de nodige modules geïnstalleerd krijgen, daar moet je zelf voor zorgen, ik maak het wel op een linux-platform.
Heb je alleen die van vandaag nodig?
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Gebruikersavatar
meon
Administrator
Administrator
Berichten: 15527
Lid geworden op: 18 Feb 2003
Twitter: meon
Locatie: Bree
Bedankt: 1 keer
Contact:

Re: Batch downloaden van JPG

Berichtdoor meon » 31 Jan 2017, 20:44

Waarom Python en Linux als je tegenwoordig standaard PowerShell hebt in Windows:

Voor als je de actuele foto wilt downloaden:
PowerShell:

Code: Selecteer alles

Invoke-WebRequest -Uri ((Invoke-WebRequest -Uri http://viaduc.wallorail.be/).Images[1].src) -UseBasicParsing -OutFile "foto.jpg"

En anders moet je een loop schrijven die die timestamp invult en downloadt, maar ik weet het bereik niet van wat je wilt downloaden.

De foto's van de voorbije 2 uren staan in

Code: Selecteer alles

(Invoke-WebRequest "http://viaduc.wallorail.be/index.php?option=com_content&view=article&id=3&Itemid=128").Scripts[17].innerHtml

Maar m'n reguliere expressies zijn niet goed genoeg om dit er uit geparsed te krijgen :(

Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 4183
Lid geworden op: 03 Jan 2010
Locatie: 127.0.0.1

Re: Batch downloaden van JPG

Berichtdoor honda4life » 31 Jan 2017, 21:24

Heb het even in vba ineen geflanst en werkt al.
Niet te veel tralala, doet z'n ding :-)

Excel openen, alt+F11
Invoegen > Module
Plakken onderstaande code
Extra > Verwijzingen: Microsoft Internet Controls en Microsoft HTML Object Library aanvinken en OK
Zorgen dat de map C:\viaduc\ bestaat
Pijltje drukken om te starten
Wachten
Klaar

Mijn programmeerkunsten zijn niet de allerbeste, maar 't werkt wel :beerchug:
Ik ben een veel betere bitneuker met microcontrollers :angel:

Code: Selecteer alles

Option Explicit

Public Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReservedex As Long, ByVal lpfnCB As Long) As Long

Sub viaduc()

Dim oInternetExplorer As SHDocVw.InternetExplorer
Dim oHtmlDocument As HTMLDocument
Dim oHtmlScripts As Object
Dim oHtmlScript As Object
Dim aArr101Split() As String
Dim vArr101Line As Variant
Dim sUrl As String
Dim sFile As String
Dim lRet As Long

Set oInternetExplorer = New SHDocVw.InternetExplorer
oInternetExplorer.navigate "http://viaduc.wallorail.be/index.php?option=com_content&view=article&id=4&Itemid=129"
oInternetExplorer.Visible = True

Do
Loop Until oInternetExplorer.readyState = READYSTATE_COMPLETE

Set oHtmlDocument = oInternetExplorer.Document
Set oHtmlScripts = oHtmlDocument.Scripts

For Each oHtmlScript In oHtmlScripts
    If InStr(oHtmlScript.innerText, "arr101 = new Array();") > 0 Then
        aArr101Split = Split(oHtmlScript.innerText, ";")
        For Each vArr101Line In aArr101Split
            If InStr(vArr101Line, "http://viaduc.wallorail.be/images/histo/saving/wm/VZT_") > 0 Then
                vArr101Line = Right(vArr101Line, Len(vArr101Line) - InStr(1, vArr101Line, "="))
                vArr101Line = Replace(vArr101Line, "'", "")
                sUrl = Trim(vArr101Line)
                sFile = Right(vArr101Line, Len(vArr101Line) - InStrRev(vArr101Line, "/"))
                lRet = URLDownloadToFile(0, vArr101Line, "C:\viaduc\" & sFile, 0, 0)
            End If
        Next
        Exit For
    End If
Next

End Sub
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

rmag
Pro Member
Pro Member
Berichten: 262
Lid geworden op: 29 Nov 2008

Re: Batch downloaden van JPG

Berichtdoor rmag » 06 Feb 2017, 11:52

Heb de vba van vorige tp nog verder uitgewerkt

Excel openen, nieuw werkblad
Cel C3, een datum invullen
Cel C4, de begin tijd
Cel C5, de eind tijd

Vba zal beelden downloaden op basis van C3,4,5

Code: Selecteer alles

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 Function DownloadFile33(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then
    If Dir(LocalFilename) <> vbNullString Then
        DownloadFile = True
    End If
End If
End Function


Private Sub HIER_Z0()
Dim File_naam As String
Dim Save_naam As String

Dag = Range("c3").Value
Start_tijd = Range("c4").Value
Stop_tijd = Range("c5").Value
Second_convertion = 86400

Delta_tijd = Stop_tijd - Start_tijd
Delta_sec = Delta_tijd * Second_convertion

For x = 0 To Delta_sec
Time_stamp = x * (1 / Second_convertion)
Time1 = Start_tijd + Time_stamp
Secon2 = Second(Time1)
        If Secon2 < 10 Then
            Secon3 = "0" & Secon2
        Else
           Secon3 = Secon2
        End If
Minut2 = Minute(Time1)
        If Minut2 < 10 Then
            Minut3 = "0" & Minut2
        Else
           Minut3 = Minut2
        End If
Uur2 = Hour(Time1)
        If Uur2 < 10 Then
            Uur3 = "0" & Uur2
        Else
           Uur3 = Uur2
        End If
Dag2 = Day(Dag)
        If Dag2 < 10 Then
            Dag3 = "0" & Dag2
        Else
           Dag3 = Dag2
        End If
Maand2 = Month(Dag)
        If Maand2 < 10 Then
            Maand3 = "0" & Maand2
        Else
           Maand3 = Maand2
        End If
Jaar2 = Year(Dag)



Naam1 = Jaar2 & Maand3 & Dag3 & "_"
Naam2 = Naam1 & Uur3 & Minut3 & Secon3

Naam3 = "http://viaduc.wallorail.be/images/histo/saving/wm/VZT_" & Naam2 & ".jpg"
'Range("B122").Offset(x, 0).Value = Naam3

File_naam = Naam3
Save_naam = "g:\viaduc\VZT_" & Naam2 & ".jpg"

 

If Not DownloadFile33(File_naam, Save_naam) Then h = 1


 'End If




Next
End Sub


Sub Command_Button_1()
Call HIER_Z0
End Sub




Terug naar “Algemeen Internet-Gebruik”

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast