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.

9
sazr 14 déc. 2011 à 12:01

5 réponses

Meilleure réponse

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.

9
Nishchay Sharma 14 déc. 2011 à 08:49

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.

2
Matteo Mosca 14 déc. 2011 à 08:13

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.

0
voigtan 14 déc. 2011 à 08:10

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 ;-)

1
OnesimusUnbound 14 déc. 2011 à 08:06

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é.

3
AlienWebguy 14 déc. 2011 à 08:04
8501127