Recent Changes - Search:

Accueil

OpenSSL

SyncML

Apache Portable Runtime

Libxml2

Net-snmp

CUrl

Boost

Perl

ZLib

Samba

VPN

Serveurs de messagerie

edit

CUrl/ScénarioDidentificationEtDeRécupérationDesFichiers

CUrl.ScénarioDidentificationEtDeRécupérationDesFichiers History

Hide minor edits - Show changes to output

May 20, 2007, at 10:56 PM by Arnaud Grandville -
May 20, 2007, at 12:16 PM by Arnaud Grandville -
Changed lines 17-18 from:
to:
Const WindowStyle = 10
Changed lines 24-28 from:
objShell.run "curl -c cookie.txt -G ""www.investir.fr""",10,true
objShell.run "curl -b cookie.txt -c cookie.txt -d ""login=INDETIFIANT&password=MOTDEPASSE"" www.investir.fr/log_membre.phtml",10,true
objShell.run "curl -b cookie.txt -G ""www.investir.fr/club_investir/hebdo_pdf.phtml"" -o hebdo_pdf.phtml",10,true

to:
objShell.run "curl -c cookie.txt -G ""www.investir.fr""",WindowStyle,true
objShell.run "curl -b cookie.txt -c cookie.txt -d ""login=INDETIFIANT&password=MOTDEPASSE"" www.investir.fr/log_membre.phtml",WindowStyle,true
objShell.run "curl -b cookie.txt -G ""www.investir.fr/club_investir/hebdo_pdf.phtml"" -o hebdo_pdf.phtml",WindowStyle,true

Changed line 40 from:
objShell.run "curl -b cookie.txt -G ""www.investir.fr/club_investir/"&Match.Value&""" -o "&Match.SubMatches(0),10,true
to:
objShell.run "curl -b cookie.txt -G ""www.investir.fr/club_investir/"&Match.Value&""" -o "&Match.SubMatches(0),WindowStyle,true
May 20, 2007, at 12:10 PM by Arnaud Grandville -
Added lines 1-141:
Le scénario ci-dessous consiste à s'identifier sur le site d' [[http://www.investir.fr|investir]] pour y télécharger l'hebdomadaire au format éléctronique disponible dès le Vendredi soir. La problématique consistait à conserver les cookies de sessions et à analyser la page contenant les noms des fichiers à télécharger.

Les étapes sont :
# Connection à la page d'accueil pour obtenir un cookie de session
# Poster les données d'identification avec les cookies obtenus précédement
# Télécharger la page contenant la liste des fichiers PDF
# Analyser le résultat avec une expression rationnelle
# Télécharger chaque fichier PDF


(:source lang=VB:)
' GetInvestir.vbs
' Script permettant la récupération par script de
' l'ensemble des fichiers PDF du magazine investir
'
Const ForReading = 1

set objFS=CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject ("WSCript.shell")
Set regEx = New RegExp


objShell.run "curl -c cookie.txt -G ""www.investir.fr""",10,true
objShell.run "curl -b cookie.txt -c cookie.txt -d ""login=INDETIFIANT&password=MOTDEPASSE"" www.investir.fr/log_membre.phtml",10,true
objShell.run "curl -b cookie.txt -G ""www.investir.fr/club_investir/hebdo_pdf.phtml"" -o hebdo_pdf.phtml",10,true


Set objFile = objFS.OpenTextFile("hebdo_pdf.phtml", ForReading, True)
strHTML =  objFile.ReadAll

regEx.Pattern = "telechargement_pdf.phtml\?(?:type=\D+&|)f=((page|cote)_\d+.pdf)&c=\d+&z=\d+"
regEx.IgnoreCase = True
regEx.Global = True
Set Matches = regEx.Execute(strHTML)


For Each Match in Matches
wscript.echo "Getting page "&Match.SubMatches(0)&" ..."
objShell.run "curl -b cookie.txt -G ""www.investir.fr/club_investir/"&Match.Value&""" -o "&Match.SubMatches(0),10,true
Next


(:sourcend:)


>>teal background-color:#f0f0f0 padding=5px font-family=monospace<<
C:\Temp>'''GetInvestir.vbs'''\\
Getting page page_01.pdf ...\\
Getting page page_40.pdf ...\\
Getting page page_36.pdf ...\\
Getting page page_37.pdf ...\\
Getting page page_04.pdf ...\\
Getting page page_05.pdf ...\\
Getting page page_38.pdf ...\\
Getting page page_39.pdf ...\\
Getting page page_02.pdf ...\\
Getting page page_03.pdf ...\\
Getting page page_06.pdf ...
>><<

L'ensemble des fichiers PDF est maintenant disponible dans le répertoire courant.\\
\\
Si vous possédez Acrobat, il vous est possible de fusionner automatiquement ces fichiers en un fichier unique par le script suivant :\\
\\

(:source lang=VB:)
' FusionPDF.vbs
' Script de fusion des fichiers PDF d'investir
' Il est arrivé qu'il manque par erreur un fichier PDF c'est pourquoi
' La fusion de fait par itération sur les 55 noms de fichiers possibles

Const DOC_FOLDER = "C:\Temp\"

Set Acroapp = CreateObject("AcroExch.App")

Acroapp.Hide

Set avCodeFile = CreateObject("AcroExch.AVDoc")
Set avFormCapture = CreateObject("AcroExch.AVDoc")
set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")

' Page_XX.pdf
iFile=1
iPage=1
strFilename = DOC_FOLDER & "page_"&right("0"&iFile,2)&".pdf"

do while iFile<55
if objFSO.FileExists(strFilename) then
wscript.echo strFilename
if iPage=1 then
avCodeFile.Open strFilename, "Investir.pdf"
Set pdCodeFile = avCodeFile.GetPDDoc
else
avFormCapture.Open strFilename, ""
Set pdFormCapture = avFormCapture.GetPDDoc
Set AVPage = avCodeFile.GetAVPageView
pdCodeFile.InsertPages iPage-2, pdFormCapture, 0, 1, 0
pdFormCapture.Close
avFormCapture.Close 1
Set pdFormCapture = Nothing
end if
iPage=iPage+1
end if
iFile=iFile+1
strFilename = DOC_FOLDER & "page_"&right("0"&iFile,2)&".pdf"
loop

' Cote_XX.pdf
iFile=1
strFilename = DOC_FOLDER & "Cote_"&right("0"&iFile,2)&".pdf"

do while iFile<55
if objFSO.FileExists(strFilename) then
wscript.echo strFilename
avFormCapture.Open strFilename, ""
Set pdFormCapture = avFormCapture.GetPDDoc
Set AVPage = avCodeFile.GetAVPageView
pdCodeFile.InsertPages iPage-2, pdFormCapture, 0, 1, 0
pdFormCapture.Close
avFormCapture.Close 1
Set pdFormCapture = Nothing
iPage=iPage+1
end if
iFile=iFile+1
strFilename = DOC_FOLDER & "Cote_"&right("0"&iFile,2)&".pdf"
loop




Set pdDoc = avCodeFile.GetPDDoc
pdDoc.Save 1, DOC_FOLDER&"\Investir.pdf"


pdCodeFile.Close
avCodeFile.Close 0

'Exit Acrobat
Acroapp.Exit
(:sourcend:)
Edit - History - Print - Recent Changes - Search
Page last modified on May 20, 2007, at 10:56 PM