AntiGuide: AspirerWebAvecFirefox



PagePrincipale :: DerniersChangements :: ParametresUtilisateur :: Vous êtes 216.73.216.92 :: Signaler un abus :: le: 20250720 10:49:01
20130723

20130802-1822 15 upload dl.free.fr 064321... éponyme, estimé 10h.

AJOUTER:
si le matériel lle permet (souris filaire usb) envisager de débrancher la souris sinon la poser sur le dos!
demande de ne plus afficher script sans reponse sur pageà voir (ne sait si c'est mémorisé= voir: dom.max_script_run_time à 1800 sur DellVostro1720XP, à vérifier sur Acerm1641VistaOrigine)
pour arrêter la machine sans risque: laisser un fichier "souricière.txt" ouvert sur le buereau et quand nécessaire y amener la souris (les frappes générées seront à peu près inoffensives) et attendre le message d'erreur de l'automate


un nouvel exemple pour un site complexe qui résiste à wget
http://web.nli.org.il/sites/NLI/English/collections/Islam-Middle-Eastern/Pages/30-Quran-books.aspx

GAFFE: la méthode utilisée frappe à travers les fenêtres, ça ouvre un infinité de risques en cas de dérèglement, donc:
l'idéal: une machine (enfin une session) "nue"
(Une alternative serait de garder la fenêtre contenant l'image en plein écran, avec le risque qu'elle ne reçoive un ordre de changement de situation!)

particularités du site:

envoi du clic
le clic droit est envoyé comme "petit 2" redirigé grâce par un script AutoHotkey:
²::
mouseclick, right
sleep 1000
return


Préparation:

Utilisation:

Goodies:
Le fichier "chantier.txt" est maintenu à jour au fur et à mesure de la progression, il n'est donc pas difficile de relancer l'opération après une défaillance
le programme est blindé contre deux pages successives identiques
le programme est blindé contre un "trou", en cas de besoin d'un démarrage en cours, ajouter un "fantôme" remplaçant la page précédente
la progression apparait à travers un fichier .info dans le dossier cible (à trier et afficher le plus jeune en tête!)
affiche le nombre de seconde avant tentative de sauvegarde par pas de 10"

GAFFE: si la page à sauver existe déjà, elle est remplacée silencieusement
"Auto.vbs"
prems=true
lastone=""			
delaicaractere=400
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")

prev=""
'msgbox Wscript.ScriptFullName
curdir= Left(Wscript.ScriptFullName, InStrRev(Wscript.ScriptFullName, "\")) 

chantier=curdir & "\chantier.txt"

If not oFSO.FileExists(chantier) Then
  msgbox "pas de fichier " & chantier
   wscript.quit
End If				

dim fi
set fi=oFso.opentextfile(chantier)
coran=trim(fi.readline)
attente=trim(fi.readline)
lesuivant=trim(fi.readline)
nbpa=trim(fi.readline)
fi.close

If not oFSO.FolderExists(coran & "-" & nbpa  ) Then
  oFso.createfolder (coran & "-" & nbpa ) 
End If				


nbc=len(nbpa)
nbc=len(nbpa)

info "démarrage"
wscript.sleep 1000
wshshell.appactivate  "mets"

rep=msgbox ("vous pouvez ajuster le dossier " & coran & vbcrlf & _
   "(affichr mode document, et l'ouvrir  ) " & vbcrlf & _
   "(le positionner en bas d'écran, large, plus jeunes en haut) " & vbcrlf & _
   "Placez le curseur sur l'image de la page " & lesuivant & vbcrlf & coran & vbcrlf & " (SANS Y FAIRE DE CLIC) " & vbcrlf & _
   "frapper <entrée> au clavier",1,"Automate d'aspiration d'images via Firefox")
if rep<>1 then 
    effacer 1' info ""
    wscript.quit
end if

while int(lesuivant) <= int(nbpa)

if ofso.fileexists(curdir & "pause.txt") then
   msgbox "efacez le fiviheir pause.txt et frrappez entrer"
end if

nomfi=curdir & coran & "-" & nbpa & "\" &right("00000" & lesuivant,nbc) &".jpg"
nomsent=nomfi
if not prems then nomsent= right("00000" & lesuivant,nbc) &".jpg"
prems=false

if oFso.fileexists(nomfi) then
   ofso.deletefile( nomfi)
   end if

if lesuivant>1 then lastone=curdir & coran & "-" & nbpa & "\" &right("00000" & lesuivant-1,nbc) & ".jpg"
if len(lastone)>1 and not oFso.fileexists(lastone) then
   msgbox "GAFFE le précedent n'y est pas " & vbcrlf & lastone & "prochain " & vbcrlf & nomfi
info ""
   wscript.quit
   end if


wscript.sleep 1000
info "envoyer sauvegarde pour " & nomfi
	envoyer  "²", 1000

	envoyer  "S",2000
  
texte   nomsent 
wscript.sleep 5000



irep=0
while (irep<10) and not oFso.fileexists(nomfi) 
irep=irep+1
info "envoyer relance n " & irep & " sauvegarde pour " & nomfi'
texte  vbcr

wscript.sleep 5000

wend


trouve=true

if not oFso.fileexists(nomfi) then
'info "pas retrouve: " & nomfi
 msgbox "PAS RETROUVE apres 5 secondes  " & vbcrlf & nomfi
wscript.quit
trouve=false
'  effacer 2' info ""
'   wscript.quit
   end if

if trouve then 
' vérifier lastone <> nomfi
if len(lastone)>0 then 
info "comparer precedent et " & nomfi
  id=true
  set f1=oFso.opentextfile(nomfi)
  set f2=oFso.opentextfile(lastone)
  while id and (not f1.atendofstream ) and (not f2.atendofstream)
    c1=f1.read(1)
    c2=f2.read(1)
    if c1<>c2 then id=false
  wend
  if id and f1.atendofstream and f2.atendofstream then 
    msgbox "deux dernier identiques " & vbcrlf & lastone & vbcrlf & nomfi
    wscript.quit
   f1.close
   f2.close
   oFso.deletefile (nomfi) 
   trouve=false
  end if
f1.close
f2.close
end if

end if ' trouve

if trouve then
lastone=nomfi

lesuivant=lesuivant+1

if int(lesuivant) <= int(nbpa) then

' mettre à jour le chantier
ofso.deletefile(chantier)
set fi=oFso.createtextfile(chantier)
fi.writeline coran
fi.writeline attente
fi.writeline lesuivant
fi.writeline nbpa
fi.close


info "passer page suivante, doit etre " &  lesuivant

envoyer  "%d" ,100 'haut de page

for t=1 to 13 

envoyer  "{tab}",100
next 't

wscript.sleep 1000
envoyer  "{enter}",1000
info "page " & lesuivant & " demandée attendre  " & attente & " secondes"

else
 info "essai de relance de la sauvegarde dans " & attente & " secondes"
end if ' trouve 

nbsectot=attente
while nbsectot >0
info "page " & lesuivant & " demandée attendre  " & attente & " secondes reste: " & nbsectot
nbsectot=nbsectot-10
wscript.sleep 10000
wend


end if

wend  'lesuivant<=page

msgbox "termine car " & (lesuivant) & ">" & (nbpa)
effacer "3 au bout " & lesuivant & ">" & nbpa  ' info ""

sub texte (t )
nt=""
for i=1 to len(t)
q=mid(t,i,1)
'if instr("/\: =",q)>0 then q="_"
if q=vbcr then q="%E"

nt=nt & q
next
' msgbox nt
wshshell.sendkeys  nt
 
end sub 

sub envoyer (quoi,delai)
q=quoi
if q=vbcr then q="{enter}"
 
wshshell.sendkeys  q
wscript.sleep delai
end sub 

sub info (quoi)
if len(prev)>0 then
 if oFso.fileexists(prev) then
   oFso.deletefile(prev)
   end if
 end if

if len(quoi) >0 then
stamp=now & "_" & quoi & ".info"
tampon=""
for i=1 to len(stamp)
c=mid(stamp,i,1)
if instr("/\: =",c)>0 then c="_"
tampon=tampon & c
next

 prev=curdir  & coran & "-" & nbpa & "\Info_" & tampon 
' msgbox prev
 ofso.createtextfile (prev)
 wscript.sleep 1000
' msgbox "created"
end if

end sub

sub effacer (n)
'msgbox "effacer " & n
info ""
end sub