Page 1 sur 1

Code à tester, suspicion de black listage...

Publié : dim. 05/janv./2014 18:59
par Fig
Bonjour,

Pour mon programme d'anagrammes, j'ai récupéré les définitions du dico Larousse en ligne à l'aide du programme qui suit (une variante d'un prog que Dobro avait posté pour récupérer une page internet).
Ca a prit 2 jours et une nuit environ pour les + de 132000 mots.
Je n'ai pas été black listé, ce qui était ma crainte. (ouf !)

Plusieurs semaines plus tard, mon code ne fonctionne plus. "Réessayez plus tard le serveur ne répond pas", pourtant, quand je fais la même recherche avec mon Browser, pas de problème. ( http://www.larousse.fr/dictionnaires/francais/test )

Pouvez vous lancer ce code et me confirmer si vous avez la définition du mot "test" qui s'affiche ou pas ?

Si non, comment peuvent ils me blacklister sans que browser le soit ? J'ai essayé en passant par un VPn même résultat...

Merci.

Code : Tout sélectionner

Structure dico
  base.s
  def.s
  mot.s
EndStructure
Global NewList basedef.dico()
Global Site.s="http://www.larousse.fr/dictionnaires/francais/"
ProcedureDLL.s Url2Text2(Url.s, OpenType.b,ProxyAndPort.s)
  ; 1 INTERNET_OPEN_TYPE_DIRECT                       Resolves all host names locally.
  ; 0 INTERNET_OPEN_TYPE_PRECONFIG                    Retrieves the proxy Or direct configuration from the registry.
  ; 4 INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY  Retrieves the proxy Or direct configuration from the registry And prevents the use of a startup Microsoft JScript Or Internet Setup (INS) file.
  ; 3 INTERNET_OPEN_TYPE_PROXY                        Passes requests To the proxy unless a proxy bypass list is supplied And the name To be resolved bypasses the proxy. In this Case, the function uses INTERNET_OPEN_TYPE_DIRECT.
  
  isLoop.b=1
  INET_RELOAD.l = $80000000
  hInet.l=0
  hURL.l=0
  Bytes.l=0
  Buffer.s=Space(2048)
  RES.s=""
  
  
  hInet = InternetOpen_("", OpenType, ProxyAndPort, "", 0)
  hURL = InternetOpenUrl_(hInet, Url, #Null, 0, INET_RELOAD, 0)
  
  Repeat
    InternetReadFile_(hURL,@Buffer, Len(Buffer), @Bytes)
    If Bytes = 0
      isLoop=0
    Else
      RES = RES + Left(Buffer, Bytes)
    EndIf
  Until isLoop=0
  
  InternetCloseHandle_(hURL)
  InternetCloseHandle_(hInet)
  ProcedureReturn RES
EndProcedure
ProcedureDLL.s Url2Text(Url.s)
  ProcedureReturn Url2Text2(Url,1,"") 
EndProcedure
Procedure recherchemot(mot$)
  a$=url2text(site+mot$)
  ;base
  basen1.i=FindString(a$,"CatgramDefinition")  
  base.s=Right(a$,Len(a$)-(basen1+18))
  basen.i=FindString(base,"</p>")-1
  base=Left(base,basen)
  If basen1=0
    base="definition a rajouter"
  EndIf ;problème !!
  ;End
  ;definition
  defn1=FindString(a$,"ul class="+Chr(34)+"Definitions")
  def.s=Right(a$,Len(a$)-(defn1+22))
  defn=FindString(def,"</ul>")-1
  def.s=Left(def,defn)
  If defn1=0
    base="definition a rajouter"
    def=""
  EndIf ;problème !!
  If FindString(a$,"par le correcteur")
    base="definition absente du dictionnaire"
    def=""
  EndIf
  If Len(base)>0
    *membase=AllocateMemory(Len(base)*4)
    PokeS(*membase,base,-1,#PB_Ascii)
    base=PeekS(*membase,-1,#PB_UTF8)
    FreeMemory(*membase)
  EndIf
  If Len(def)>0
    *memdef=AllocateMemory(Len(def)*4)
    PokeS(*memdef,def,-1,#PB_Ascii)
    def=PeekS(*memdef,-1,#PB_UTF8)
    FreeMemory(*memdef)
  EndIf  
  
  If FindString(base,"<a class="+Chr(34)+"lienconj"+Chr(34)+" href="+Chr(34)+"/conjugaison/francais/")
    base=ReplaceString(base,"<a class="+Chr(34)+"lienconj"+Chr(34)+" href="+Chr(34)+"/conjugaison/francais/","")
    n=FindString(base,"/")-1
    base=Left(base,n)
  EndIf
  defn=0
  While FindString(def,"<li class="+Chr(34)+"DivisionDefinition"+Chr(34)+">",1,#PB_String_NoCase)
    defn+1
    def=ReplaceString(def,"<li class="+Chr(34)+"DivisionDefinition"+Chr(34)+">","§"+Str(defn)+" ",#PB_String_NoCase,1,1)
  Wend
  def=ReplaceString(def,"</li>","",1,#PB_String_NoCase)
  def=ReplaceString(def,"<span class="+Chr(34)+"ExempleDefinition"+Chr(34)+">"," Ex: ",#PB_String_NoCase)
  def=ReplaceString(def,"</span>","",1,#PB_String_NoCase)
  def=ReplaceString(def,"<span class="+Chr(34)+"Renvois"+Chr(34)+">","",#PB_String_NoCase)

  While FindString(def,"<")
    For t=1 To Len(def)
      If Mid(def,t,1)="<"
        deb=t-1
      EndIf
      If Mid(def,t,1)=">"
        def=Left(def,deb)+Right(def,Len(def)-t)
        Break
      EndIf
    Next t
  Wend
  While FindString(base,"<")
    For t=1 To Len(base)
      If Mid(base,t,1)="<"
        deb=t-1
      EndIf
      If Mid(base,t,1)=">"
        base=Left(base,deb)+Right(base,Len(base)-t)
        Break
      EndIf
    Next t
  Wend
  ;def
  def=ReplaceString(def,"&nbsp;:"," ")
  def=ReplaceString(def,Chr(9),"")
  def=ReplaceString(def,"  ","")
  def=ReplaceString(def,Chr(13),"")
  ;base
  base=ReplaceString(base,"&nbsp;:"," ")
  base=ReplaceString(base,Chr(9),"")
  
  AddElement(basedef())
  basedef()\base=base
  basedef()\def=def
  basedef()\mot=mot$
EndProcedure

recherchemot("test")
Debug basedef()\mot
Debug basedef()\base
Debug basedef()\def

Re: Code à tester, suspicion de black listage...

Publié : dim. 05/janv./2014 19:17
par venom
Réponse du débogueur :

Code : Tout sélectionner

test
definition a rajouter





@++

Re: Code à tester, suspicion de black listage...

Publié : dim. 05/janv./2014 19:40
par Fig
Çà veut dire que c'est mon programme, (sa manière d'accéder) qui ne fonctionne plus.
Merci.

Pas grave, je récupérerai les nouvelles définitions d'un autre site... :?

Re: Code à tester, suspicion de black listage...

Publié : dim. 05/janv./2014 19:59
par falsam
test
nom masculin

§1 Épreuve psychologique impliquant une tâche à remplir identique pour tous les sujets, des conditions d'application rigoureuses et une technique précise pour l'appréciation du succès ou de l'échec. (Il existe des tests de niveau et des tests projectifs.)
§2 Essai d'un produit, d'un appareil pour vérifier son action, son fonctionnement.
§3 Toute circonstance qui permet d'éprouver, de mesurer quelque chose Ex: Ce sera un test de bonne volonté.
§4 Examen, ou épreuve standardisée et étalonnée, permettant d'évaluer des aptitudes physiques ou psychologiques chez un individu donné.
§5 Examen complémentaire pratiqué pour orienter ou confirmer le diagnostic d'une maladie.
§6 Examen diagnostique basé sur l'apparition ou la non-apparition d'un phénomène chimique (coloration d'un liquide, par exemple), biologique (?dème cutané, par exemple), physiologique (mouvement réflexe, par exemple), après mise en ?uvre d'un procédé, administration d'une substance ou action d'un stimulus.
§7 Essai de production effectué en cours de forage au moyen d'un tester.
§8 Synonyme de test-match.

Re: Code à tester, suspicion de black listage...

Publié : dim. 05/janv./2014 20:02
par Fig
Ca marche alors ?? 8O
Je ne comprends plus là. Chez moi ça ne marche pas...

Re: Code à tester, suspicion de black listage...

Publié : dim. 05/janv./2014 20:08
par falsam
Je viens de recommencer à l'instant et pas de problème.

Je pense que ta variable a$ n'a pas reçu la totalité de ta requete html renvoyée par la procédure Url2Text2.

Re: Code à tester, suspicion de black listage...

Publié : dim. 05/janv./2014 20:49
par Fig
Bon, ça veut dire que ça va revenir, je verrai demain si c'est mieux... Merci en tout cas

Re: Code à tester, suspicion de black listage...

Publié : dim. 05/janv./2014 22:28
par Lemaquis
Bonsoir

j'ai testé ton code et il marche :
test
nom masculin

§1 Épreuve psychologique impliquant une tâche à remplir identique pour tous les sujets, des conditions d'application rigoureuses et une technique précise pour l'appréciation du succès ou de l'échec. (Il existe des tests de niveau et des tests projectifs.)
§2 Essai d'un produit, d'un appareil pour vérifier son action, son fonctionnement.
§3 Toute circonstance qui permet d'éprouver, de mesurer quelque chose Ex: Ce sera un test de bonne volonté.
§4 Examen, ou épreuve standardisée et étalonnée, permettant d'évaluer des aptitudes physiques ou psychologiques chez un individu donné.
§5 Examen complémentaire pratiqué pour orienter ou confirmer le diagnostic d'une maladie.
§6 Examen diagnostique basé sur l'apparition ou la non-apparition d'un phénomène chimique (coloration d'un liquide, par exemple), biologique (?dème cutané, par exemple), physiologique (mouvement réflexe, par exemple), après mise en ?uvre d'un procédé, administration d'une substance ou action d'un stimulus.
§7 Essai de production effectué en cours de forage au moyen d'un tester.
§8 Synonyme de test-match.