Page 1 sur 1

[R] InetRead n'affiche pas la source html en entier!

Posté : jeu. 30 juil. 2015 01:15
par mmaier
Bonjour.

Je suis en train de m'écrire une sorte de 'web-grabber' qui collecte les infos des sites qui m'intéressent pour me les envoyer tous les matins par mail.
Globalement cela fonctionne, mais j'ai un souci.
Voici l'exemple (d'aujourd'hui, mais réproductible à n'importe quelle moment avec tous les articles):
http://www.ledauphine.com/isere-nord
Image

Ce qui m'intéresse c'est le titre, la photo, le petit texte 'gratuite', et la date.
La source sous IE, Firefox ou encore chrome de cette page me donne pour cette section:
► Afficher le texte
Parfait! Tous les infos qui m'intéressent y sont.
-> L'image: <img src="http://s-www.ledauphine.com/images/6D0A ... legers.jpg" alt="Une collision fait deux blessés légers" />
-> Le titre: alt="Une collision fait deux blessés légers" />
-> Le texte: <p>L’accident est survenu à 9 heures, hier, à l’approche du rond-point des Buissières (accès à l’autoroute A43 à la limite de la commune de ... </p> </div>
-> Et la date: <span>Publié </span> 29/07/2015 à 06:05</li>

Théoriquement quelques _ArraySearch & StringSplit et encore un StringLeft/StringRight et l'affaire est clos!

SAUF QUE:

Avec le script suivant:
► Afficher le texte
PS: L'AJOUT DE : HttpSetUserAgent("MyUserAgent") NE CHANGE SRICTEMENT RIEN!!!
J'obtiens:
► Afficher le texte
Tout y est SAUF: <div class="contenu"> ce qui devient <div class="contentInfo"> sans les infos ???

Alors que les scripts 'beaucoup plus lents!!!':
► Afficher le texte
ou encore:
► Afficher le texte
me donnent le résultat:
► Afficher le texte
Sauf que cette fois-ci les infos sur le lien du photo manquent... :(

Certes, je pourrais pour contourner mon problème en exécutant les deux scripts pour paralléliser les résultats pour obtenir la totalité des infos souhaitées, mais cela me semble pas trop propre.
Du coup je suis preneur de toute idées pour contourner ce problème d'une manière plus smart..

Amicodement...

Re: InetRead n'affiche pas la source html en entier!

Posté : jeu. 30 juil. 2015 08:06
par jguinch
Bonjour mmaier, bienvenue sur le forum.
Merci de modifier le titre du sujet afin qu'il respecte les règles de présentation d'un message.
Merci également d'utiliser la balise Spoiler pour le code (d'autant plus qu'ici tu en as mis plusieurs morceaux) : je le fais pour celui-là

Re: [..] InetRead n'affiche pas la source html en entier!

Posté : jeu. 30 juil. 2015 09:14
par jguinch
Essaie ça :

Code : Tout sélectionner

HttpSetUserAgent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0")
Mais je remarque quelques caractères bizarres, on n'a pas le problème en passant par winhttp :
► Afficher le texte

Re: [..] InetRead n'affiche pas la source html en entier!

Posté : jeu. 30 juil. 2015 09:19
par jbnh
@jguinch pourquoi une requête post ? Get me semble plus approprié non ?

Re: [..] InetRead n'affiche pas la source html en entier!

Posté : jeu. 30 juil. 2015 09:31
par jguinch
Parce que j'ai copié-collé un bout de script à moi sans faire gaffe... :roll:
C'est corrigé , merci :wink:

Re: [..] InetRead n'affiche pas la source html en entier!

Posté : jeu. 30 juil. 2015 16:25
par mmaier
:) Grand merci jguinch :)

Avec le UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) tout marche comme souhaité.
Mon script est adapté et fonctionne à merveille.

Merci

Re: [R] InetRead n'affiche pas la source html en entier!

Posté : jeu. 30 juil. 2015 16:27
par mikell
:mrgreen:

Code : Tout sélectionner

$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET", "http://www.ledauphine.com/isere-nord", False)
$oHTTP.setRequestHeader('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0');
$oHTTP.SetRequestHeader("Referer", "http://www.ledauphine.com")
$oHTTP.Send()
$sReceived = $oHTTP.ResponseText

$pattern = '(?s).*?section isere-nord isere-nord.*?img src="([^"]+).*?' & _
        'surtitre.*?>\s*(\V+).*?titre.*?>\s*(\V+).*?<p>([^<]+).*?/span>\h*([^<]+).*'
$res = StringRegExpReplace($sReceived, $pattern, "$1" &@crlf& "$2" &@crlf& "$3" &@crlf& "$4" &@crlf& "$5")
Msgbox(0,"", $res)

Re: [R] InetRead n'affiche pas la source html en entier!

Posté : jeu. 30 juil. 2015 16:35
par jguinch
@mikell : et la date ? :P

Re: [R] InetRead n'affiche pas la source html en entier!

Posté : jeu. 30 juil. 2015 17:41
par mikell
Pf complètement zappé la date... édité :mrgreen:

Re: [R] InetRead n'affiche pas la source html en entier!

Posté : ven. 31 juil. 2015 10:45
par jbnh
jguinch qui se venge de son erreur POST sur mikell :P :P

Re: [R] InetRead n'affiche pas la source html en entier!

Posté : ven. 31 juil. 2015 13:53
par jguinch
Hé hé :wink:

Re: [R] InetRead n'affiche pas la source html en entier!

Posté : ven. 31 juil. 2015 19:41
par mikell
Ah ben oui évidemment... :shock: bien vu jbnh
Oumpf trop naïf le chat, il percute pas vite
:wink: