Bonjour à tous,
comme le titre du post l'indique, je me demandais comment gérer les temps d'attente avec mechanize.
Je m'explique, je veux interroger automatiquement cette page.
J'ai donc un script qui remplie le champs en haut de la page, qui clique sur le bouton "submit", puis qui suis le lien menant vers la page des resultats :
La première fois que j'ai lancé le script, ça a très bien marché.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 #!/usr/bin/perl -w use strict; use diagnostics; use WWW::Mechanize; use Data::Dumper; use vars qw($opt_h); use Getopt::Std; ##recuperation des arguments - initialisation getopts("h") or die("erreur(s) de saisie dans les options. Faire -h pour obtenir l'aide\n"); if (defined($opt_h)) { &help; exit; } my $peptide = "NTDQASMPDNTAAQK"; my $AC = "P14105"; my $url = 'http://services.uniprot.org/blast/'; #creation du robot qui naviguera sur internet my $bot = WWW::Mechanize->new(); #on va sur la page qui nous interesse $bot->get($url); $bot->form_number(1); $bot->set_fields(query => $peptide); $bot->submit(); die $bot->res->status_line unless $bot->success; $bot->follow_link(text => 'sequence similarity search'); open(TEST, '>', 'test.html') or die("Impossible d'ouvrir test.html"); print(TEST Dumper $bot->content()); close(TEST); sub help { print qq{ analyse_identification_TMT.pl va sur le site de swissprot, lui entre passe une sequence peptidique et verifie que le fichier TMT contient la bonne identification. Parametres (a venir): -p : peptide -a : AC }; }
J'ai retesté juste après avoir ajouter les variables $peptides et $AC, ce qui ne devrait rien changer pour le script, et ça n'a pas marché.
Enfin, si en quelque sorte : mon script a bien copier une page html, mais pas celle de résultats. En effet, le site met parfois un peu de temps (15-30sec) à répondre à la requête, et dans ce cas, il y a une page intermédiaire disant que la requete est en train de tourner depuis X secondes... C'est cette page que mon script copie.
D'où ma question : comment gérer ce cas de figure avec mechanize? comment le faire patienter jusqu'à ce que la bonne page de résultats arrive?
Je n'ai pas trouvé de fonction prédéfinie pour ça, mais peut être existe-il un moyen détourné?
Bref, la moindre idée sera étudiée
Partager