2017-09-25 3 views
-1

J'essaie de gratter un site Web en utilisant WWW::Mechanize::Firefox, mais chaque fois que j'essaie d'obtenir les données, il affiche du code JavaScript et les données dont j'ai besoin ne sont pas là. Si j'inspecte l'élément sur Mozilla, les données dont j'ai besoin sont là.Télécharger la page web en utilisant WWW :: Mechanize :: Firefox

Voici mon code actuel:

#!/usr/bin/perl 

use 5.010; 
use strict; 
use warnings; 

use WWW::Mechanize::Firefox; 

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

$mech->get('link_goes_here'); 
$mech->allow(javascript => 0); 
$mech->content_encoding(); 
$mech->save_content('source.html'); 
+4

Assurément, il est parce que vous avez désactivé JS. – ikegami

Répondre

2

Ok. Vous avez donc une page qui construit son contenu en utilisant Javascript. Vraisemblablement, vous avez choisi d'utiliser WWW :: Mechanize :: Firefox au lieu de WWW :: Mechanize parce qu'il inclut le support pour le rendu des pages qui sont construites en utilisant Javascript. Et pourtant, lors de la création de votre objet Mechanize, vous désactivez explicitement le support Javascript.

$mech->allow(javascript => 0); 

Je ne peux pas tester cette théorie parce que vous ne nous avez pas dit quelle URL que vous utilisez, mais je parie que vous obtenez un meilleur résultat si vous changez cette ligne à:

$mech->allow(javascript => 1);