2010-08-28 6 views
4

J'utilise WWW :: Mechanize :: Shell pour tester des choses. Comme je n'ai pas réussi à me connecter sur un site web, je voulais utiliser le cookie du navigateur (chrome ou firefox) pour ce site spécifique avec la commande 'cookie' WWW :: Mechanize :: Shell a .WWW :: Mechanize et les cookies

La question est, cookies habituellement stockés dans un seul fichier, ce qui n'est pas bon, comment obtenir un cookie pour ce site spécifique seulement?

grâce,

Répondre

10

Pourquoi ne stocke pas les cookies dans un bon fichier?

Depuis WWW::Mechanize est construit sur LWP::UserAgent, vous gérez les cookies comme vous le faites dans LWP::UserAgent. Vous pouvez faire du cookie jar un fichier ou un hachage en mémoire.

Si vous ne souhaitez pas enregistrer les cookies dans un fichier, utilisez une référence de hachage vide lorsque vous construisez l'objet mech:

use WWW::Mechanize; 

my $mech = WWW::Mechanize->new(cookie_jar => {}); 

Si vous souhaitez utiliser un nouveau fichier, faire une nouvelle HTTP::Cookies objet:

use WWW::Mechanize; 

my $mech = WWW::Mechanize->new( 
    cookie_jar => HTTP::Cookies->new(file => "$ENV{HOME}/.cookies.txt") 
    ); 

Si vous voulez charger un fichier de cookies spécifiques du navigateur, utilisez le bon module pour elle:

use WWW::Mechanize; 

my $mech = WWW::Mechanize->new( 
    cookie_jar => HTTP::Cookies::Netscape->new(file => $filename) 
    ); 

Si vous voulez pas de cookies du tout, utilisez FNUD explicitement:

use WWW::Mechanize; 

my $mech = WWW::Mechanize->new(cookie_jar => undef); 

Tout cela est dans la documentation.

+0

C'est une bonne explication, et était vraiment utile. Mais, en fait, ce que je veux, c'est de CHARGER les cookies que j'ai déjà, les cookies sont dans le fichier de cookies firefox (aucune idée où est-il ...). Est-ce possible? – snoofkin

+0

Eh bien, utilisez l'un des modules HTTP :: Cookie :: * pour gérer le type de fichier de cookies que vous voulez charger. –

Questions connexes