Code à tester, suspicion de black listage...

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Code à tester, suspicion de black listage...

Message 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
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

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

Message par venom »

Réponse du débogueur :

Code : Tout sélectionner

test
definition a rajouter





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

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

Message 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... :?
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

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

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

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

Message par Fig »

Ca marche alors ?? 8O
Je ne comprends plus là. Chez moi ça ne marche pas...
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

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

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

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

Message par Fig »

Bon, ça veut dire que ça va revenir, je verrai demain si c'est mieux... Merci en tout cas
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Lemaquis
Messages : 271
Inscription : mer. 25/déc./2013 7:34
Localisation : la corse

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

Message 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.
LeMaquis
Répondre