JavaScript ne peut pas obtenir le code source d'une page arbitraire, la dernière fois que je le savais. Mais PHP peut très facilement.Obtenir la source d'une page avec PHP, manipuler avec JavaScript
//get page source code with php
<?php
url = 'http://www.thesaurus.com/browse/strong?s=t';
$src = file_get_contents($url);
?>
PHP n'est pas bon pour manipuler le DOM, mais jQuery est parfait pour ça!
Je voudrais faire quelque chose comme
//manipulate source code with javascript
<script>
html = '"' + <?php echo $src;?> + '"';
listItems = $(html + " li");
printLists = '';
$.each(listItems, function(ind, el) {
printLists += el.innerHTML + "<br/>";
});
document.write(printLists);
</script>
Mais, chaque fois que je fais l'écho $src
dans la balise script, il est interprété comme HTML immédiatement et la page devient une moquerie en direct du site réel.
//Actually just shows me [email protected]
<body>
<div id="holder" style="display: none;"></div>
<script>
holder = $("#holder");
nodeNames = [];
html = $.parseHTML(<?php echo $src;?>, holder, false);
</script>
</body>
L'expression « DOM virtuel » sonne juste, mais je ne veux vraiment pas du code source copié pour afficher du tout. Je veux juste en extraire certaines parties: pour lancer un script à partir de la console, rechercher un terme sur quelques sites de thésaurus, prendre les résultats et les enregistrer dans JSON accessible par un script de thésaurus local.
J'ai une bonne idée de comment faire tout le reste, ne m'attendais pas à ce que ce soit la partie difficile!
Des suggestions pour empêcher le navigateur d'analyser le code HTML?
(je préférerais cela à courir comme un fichier script sans un navigateur de toute façon, mais avait des difficultés à charger jQuery dans un fichier thesaurus.js
.)