J'essaie d'obtenir du code HTML à partir d'une page Web qui n'est pas dans le même domaine. Le texte html est analysé et résume une recette (nom de la recette, ingrédients principaux, nombre d'étapes) trouvée sur cette page d'où provenait le code HTML.
L'utilisateur peut ensuite cliquer sur le lien et accéder à cette page Web en dehors du domaine pour afficher la recette.
Je connais la même politique d'origine, mais cela s'applique-t-il à l'obtention de code HTML à partir d'une page Web en dehors du domaine national? J'imagine que c'est exactement la même chose que d'obtenir XML, donc c'est légal et autorisé n'est-ce pas?
Existe-t-il un moyen d'obtenir le texte / code HTML d'un domaine en dehors de mon domaine domestique?
En utilisant Javascript et JQuery, l'idée est de limiter la quantité de requêtes et de stockage du serveur en demandant à l'utilisateur d'effectuer des requêtes pour chaque recette et d'analyser le code HTML côté client. Cela empêche les goulots d'étranglement côté serveur et signifie également que je n'ai pas à passer par le serveur et supprimer les anciens résumés de recettes obsolètes.
Je suis ouvert aux solutions / suggestions dans n'importe quel langage de programmation ou API ou etc.
5 réponses
Ce que vous essayez de faire ne peut pas être fait à l'aide d'une bibliothèque AJAX. La politique inter-domaines des navigateurs ne vous permet pas de le faire.
Mais vous pouvez le faire avec une combinaison de php (ou de tout autre langage côté serveur) et AJAX. Créez un script php comme celui-ci:
<?php
$url=$_POST['url'];
if($url!="")
echo file_get_contents($url);
?>
Disons que le nom du script est fetch.php
. Vous pouvez maintenant lancer un appel AJAX depuis votre code jQuery vers ce fetch.php
et il récupérera le code HTML pour vous.
Pour ajouter quelque chose aux réponses que vous avez déjà obtenues, je peux vous dire que html
n'est pas destiné à être utilisé comme un moyen de transmettre des données "comme un service". À cette fin, il y a XML
ou JSON
exposé par SOAP
ou REST
.
Dans votre scénario, la meilleure approche à laquelle je peux penser, en gardant à l'esprit les aspects techniques et juridiques, est d'utiliser un iframe
pour afficher le contenu externe et citer la source du contenu iframe, y compris un lien externe comme vous faites déjà.
Vous pouvez toujours essayer l'approche côté serveur pour récupérer le code HTML distant mais encore une fois, ce n'est pas une manière propre de le faire, sûrement pas une bonne pratique et peut-être pas légale.
Si l'auteur du contenu souhaite qu'il soit réutilisable en dehors de son site, il peut exprimer cette intention en mettant à disposition le contenu non formaté via un service ou un flux RSS
/ Atom
.
Je ne sais pas si cela compte comme une solution javascript pure mais: http://developer.yahoo.com/yql / pourrait vous aider avec ce que vous recherchez.
La même origine s'applique. essayez ce code et vous ferez face à une erreur de sécurité
$.get("other web page site", {}, function(content){
$("#receipe").html(content)
}, "html")
Btw, vous violerez plus probablement la loi sur le droit d'auteur, alors méfiez-vous ;-)
Non, cela ne fonctionnera pas à partir du JavaScript côté client. Le navigateur l'empêche pour des raisons de sécurité. Vous devrez effectuer des appels ajax vers un script côté serveur local (PHP, par exemple) qui récupérera ensuite le contenu (via cURL, par exemple) et renverra le code HTML souhaité.
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.