GNT sans publicité, site mobile, fonctionnalitées exclusives...

[Limite de 256 HTTP/HTML]

Le
Philippe
Bonsoir,

Aucune idée d'où ceci peut provenir J'ai écrit un module qui va faire
des requêtes sur le Web, du genre du module WWW::Search::Pagesjaunes
mais ce sont des requêtes sur des pages et non sur des formulaires.
Le script fonctionne très bien jusqu'à la limite de 256 lignes écrites
dans le fichier de sortie (du texte tabulé).

J'avoue (est-ce l'heure ?) que je ne comprends pas.
Toute aide sera la bienvenue.

perl5.6.1, linux Debian Woody.
Philippe
Lire les 6 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Alain BARBET
Le #135971
Philippe wrote:
Bonsoir,

Aucune idée d'où ceci peut provenir... J'ai écrit un module qui va faire
des requêtes sur le Web, du genre du module WWW::Search::Pagesjaunes
mais ce sont des requêtes sur des pages et non sur des formulaires.
Le script fonctionne très bien jusqu'à la limite de 256 lignes écrites
dans le fichier de sortie (du texte tabulé).


Un disque local plein tout simplement ?

Philippe
Le #135887
J'aurais aimé que ce soit si simple :-/ mais non. Pourquoi 256 et pas
257 ou 329 ? Et ça se répète.

Merci.
Philippe


Philippe wrote:

Bonsoir,

Aucune idée d'où ceci peut provenir... J'ai écrit un module qui va
faire des requêtes sur le Web, du genre du module
WWW::Search::Pagesjaunes mais ce sont des requêtes sur des pages et
non sur des formulaires.
Le script fonctionne très bien jusqu'à la limite de 256 lignes écrites
dans le fichier de sortie (du texte tabulé).



Un disque local plein tout simplement ?




root
Le #135886
On Tue, 02 Dec 2003 23:15:40 +0100, Philippe wrote:

Bonsoir,

Aucune idée d'où ceci peut provenir... J'ai écrit un module qui va faire
des requêtes sur le Web, du genre du module WWW::Search::Pagesjaunes
mais ce sont des requêtes sur des pages et non sur des formulaires.
Le script fonctionne très bien jusqu'à la limite de 256 lignes écrites
dans le fichier de sortie (du texte tabulé).

J'avoue (est-ce l'heure ?) que je ne comprends pas.
Toute aide sera la bienvenue.



Et si tu nous donnais ton code, ou au moins un morceau minimal qui
reproduise cet effet pour pouvoir essayer chez nous ?

Philippe
Le #135884
Bonjour root :-)

Voici mon erreur, si mon interprétation est mauvaise merci de corriger:
Voici le code initial:

#
# On recherche la "page suivante"
my $oparser = HTML::TokeParser->new( $page );
while (my $token = $oparser->get_tag("a")) {
my $url = $token->[1]{href} || '-' ;
my $text = $oparser->get_trimmed_text("/a");
if ($text eq 'Suivant') {
$url = URL .$url ;
$page = $self->{ua}->request(GET $url)->content ;
}
}

Voici le code modifie
#
# On recherche la "page suivante"
my $oparser = HTML::TokeParser->new( $page );
my $newpage ;
^^^^^^^^^^^^^
while (my $token = $oparser->get_tag("a")) {
my $url = $token->[1]{href} || '-' ;
my $text = $oparser->get_trimmed_text("/a");
if ($text eq 'Suivant') {
$url = URL .$url ;
$newpage = $self->{ua}->request(GET $url)->content ;
^^^^^^^^
}
}
$page = $newpage ;

Que j'interprète comme ceci:
je change en cours de lecture le contenu d'une référence ($page). En
utilisant une variable intermédiaire, je protège la recherche et le
résultat. Reste que ça marche sur un certain nombre de page (256) avant
de "planter"...

Philippe

On Tue, 02 Dec 2003 23:15:40 +0100, Philippe wrote:
[...]


Et si tu nous donnais ton code, ou au moins un morceau minimal qui
reproduise cet effet pour pouvoir essayer chez nous ?


root
Le #135878
On Thu, 04 Dec 2003 09:06:16 +0100, Philippe wrote:


Voici mon erreur, si mon interprétation est mauvaise merci de corriger:
Voici le code initial:

#
# On recherche la "page suivante"
my $oparser = HTML::TokeParser->new( $page );
while (my $token = $oparser->get_tag("a")) {
my $url = $token->[1]{href} || '-' ;
my $text = $oparser->get_trimmed_text("/a");
if ($text eq 'Suivant') {
$url = URL .$url ;
$page = $self->{ua}->request(GET $url)->content ;
}
}

Voici le code modifie
#
# On recherche la "page suivante"
my $oparser = HTML::TokeParser->new( $page );
my $newpage ;
^^^^^^^^^^^^^
while (my $token = $oparser->get_tag("a")) {
my $url = $token->[1]{href} || '-' ;
my $text = $oparser->get_trimmed_text("/a");
if ($text eq 'Suivant') {
$url = URL .$url ;
$newpage = $self->{ua}->request(GET $url)->content ;
^^^^^^^^
}
}
$page = $newpage ;

Que j'interprète comme ceci:
je change en cours de lecture le contenu d'une référence ($page). En
utilisant une variable intermédiaire, je protège la recherche et le
résultat. Reste que ça marche sur un certain nombre de page (256) avant
de "planter"...



« planter » comment ? y a un message d'erreur de perl ? tu utilises LWP
? message d'erreur de LWP ? essaye de verifier les réponses de tes
request() avec `is_success()' avant de prendre le contenu...

Si tu utilises `WWW::Mechanize' (a la place de LWP) tu peux éviter de
parser toi même le HTML en utilisant un `find_link( text_regex =>
qr/Suivant/ );' par exemple.

Publicité
Suivre les réponses
Poster une réponse
Anonyme