Fonction GetPage, script Allociné et résultat avec un moteur de recherche

If you made a script you can offer it to the others here, or ask help to improve it. You can also report here bugs & problems with existing scripts.
Post Reply
hervem
Posts: 12
Joined: 2023-12-25 17:30:53
Location: France

Fonction GetPage, script Allociné et résultat avec un moteur de recherche

Post by hervem »

Belle année 2024 !

J'essaie de faire fonctionner le script Allociné.
J'ai fait déjà plusieurs modifications pour que la fonction GetPage me charge la page de résultat d'un moteur de recherche sans erreurs. Mais je ne suis pas encore satisfait.

Ce qui ne marche plus car j'obtiens l'erreur "HTTP/1.1 400 Bad Request" :
- l'utilisation de google

Ce qui ne fonctionne pas :
- l'utilisation de Qwant, j'obtiens la même erreur qu'avec Google
- avec Duckduckgo, la page récupérée ne contient pas les résultats de la recherche, donc les URL vers les fiches Allociné

Ce qui fonctionne partiellement :
- l'utilisation de Brave Search, au bout d'un moment, il me bloque me prenant pour un bot. Je suis obligé d'attendre de nombreuses minutes avant de refaire une requête.
- l'utilisation de Bing, pour l'instant. Mais je trouve la page de résultat de recherche "trop chargée".

Ma préférence irait vers l'utilisation de Duckduckgo car la page de recherche est simple et semble complète mais le code source de la page de recherche ne correspond pas exactement au résultat affiché. Après plusieurs recherches sur ce problème, il semblerait que des éléments soient générés dynamiquement grâce au navigateur ce qui rend la récupération par GetPage incomplète.
En Delphi 7, j'ai vu qu'il était possible de simuler un navigateur avec un moteur de rendu Internet Explorer utilisé par TWebBrowser. Mais IE est sans doute déjà dépassé ou risque de l'être prochainement. Existe-t-il un autre moteur de rendu sous Delphi 7 ?
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Re: Fonction GetPage, script Allociné et résultat avec un moteur de recherche

Post by antp »

Hello,
En effet avec les pages dynamiques, tout ce qui est géré par javascript plutôt que directement dans la page n'est pas récupérable avec un simple client HTTP.
IE n'aidera probablement pas beaucoup, mais de toute façon aller embarquer un moteur de rendu semble un peu lourd pour cela.
Pour ce qui est de l'accès à Google, il faut utiliser GetPage4 qui permet de spécifier le type de contenu en 4e paramètre, où on doit passer une chaîne vide au lieu du '*/*' que AMC envoie par défaut et que Google n'aime pas.
GetPage4('https://www.google.com/search?q=test', '', '', '')
Mais ça donne juste une page où Google demande d'accepter ses cookies, ça ne sera donc pas si simple.
À voir pour Qwant mais il ne semble pas renvoyer un contenu facile à parser.
Il faudrait plutôt aller voir s'il n'y a pas des API que l'on peut appeler pour chacun des moteurs de recherche plutôt que de parser les pages "publiques".
hervem
Posts: 12
Joined: 2023-12-25 17:30:53
Location: France

Re: Fonction GetPage, script Allociné et résultat avec un moteur de recherche

Post by hervem »

Merci pour votre réponse rapide et complète.

Intéressant la piste des API, je n'y avais pas pensé.
Post Reply