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 markup

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' 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 :

  1. Connection à la page d'accueil pour obtenir un cookie de session
  2. Poster les données d'identification avec les cookies obtenus précédement
  3. Télécharger la page contenant la liste des fichiers PDF
  4. Analyser le résultat avec une expression rationnelle
  5. 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:)

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