Extraire variable page html
Résolu/Fermé
perlzero
-
Modifié le 14 avril 2017 à 20:35
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 18 avril 2017 à 09:25
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 18 avril 2017 à 09:25
A voir également:
- Extraire variable page html
- Extraire une video youtube - Guide
- Supprimer une page word - Guide
- Extraire son video - Guide
- Editeur html - Télécharger - HTML
- Extraire image pdf - Guide
2 réponses
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié le 15 avril 2017 à 01:32
Modifié le 15 avril 2017 à 01:32
Oui, tu récupères les données JSON en les matchant avec une regexp, et tu utilises un module CPAN pour les décoder et les passer à Perl. Par exemple comme ceci avec JSON::Parse :
donne :
La regexp suppose que le JSON est sur une seule ligne à la suite de "var utilisateurs = "
Pour plus de détails : https://metacpan.org/pod/release/BKB/JSON-Parse-0.49/lib/JSON/Parse.pod
Dal
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use JSON::Parse 'parse_json'; my $listuser = <<'EOT'; <table id="table" class="tablestyle"> <script type="text/javascript"> // <!-- var utilisateurs = { "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] } ... EOT if ($listuser =~ /var utilisateurs = (.*?)$/ms) { print "matched $1\n"; my $parsed = parse_json($1); print Dumper($parsed); }
donne :
$ ./perlzero.pl
matched { "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] }
$VAR1 = {
'age' => 25,
'address' => {
'postalCode' => '10021',
'state' => 'NY',
'city' => 'New York',
'streetAddress' => '21 2nd Street'
},
'firstName' => 'John',
'lastName' => 'Smith',
'phoneNumber' => [
{
'number' => '212 555-1234',
'type' => 'home'
},
{
'type' => 'fax',
'number' => '646 555-4567'
}
]
};
La regexp suppose que le JSON est sur une seule ligne à la suite de "var utilisateurs = "
Pour plus de détails : https://metacpan.org/pod/release/BKB/JSON-Parse-0.49/lib/JSON/Parse.pod
Dal
Merci Dal,
mon problème est résolu en grande partie avec l'aide que tu as fournie. Effectivement mon json était multiligne, mais avec quelques recherches supplémentaires, j'ai pu m'en sortir.
@bientôt
mon problème est résolu en grande partie avec l'aide que tu as fournie. Effectivement mon json était multiligne, mais avec quelques recherches supplémentaires, j'ai pu m'en sortir.
@bientôt
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
18 avril 2017 à 09:25
18 avril 2017 à 09:25
super, bravo !