1 votes

Est-il possible d'accéder à d'autres pages web à partir d'une autre page ?

En gros, ce que j'essaie de faire, c'est de créer un petit script qui accède au message le plus récent d'un forum et en tire du texte ou une image. Je l'ai déjà fait en python, en utilisant le module htmllib et quelques regex. Mais le script n'est toujours pas très pratique en l'état, ce serait beaucoup plus agréable si je pouvais le mettre dans un document HTML. Il semble que l'intégration de script Python ne soit pas possible, je cherche donc à savoir s'il existe une fonctionnalité similaire à la htmllib de Python qui peut être utilisée pour accéder à une autre page web et en extraire des informations.

(Essentiellement, si je pouvais obtenir ce script sous la forme d'un document html, je pourrais simplement ouvrir un document html, plutôt que de naviguer sur plusieurs pages différentes pour obtenir l'information que je veux vérifier).

Je suis presque sûr que javascript n'a pas la fonctionnalité dont j'ai besoin, mais je me demandais s'il y avait d'autres langages tels que jQuery, ou même quelque chose comme AJAX ?

3voto

Funka Points 3119

Comme le mentionne Greg, une solution Ajax ne fonctionnera pas "out of the box" lorsqu'elle tente de charger des données à partir de serveurs distants.

Si, toutefois, vous essayez de charger à partir de la base de données mismo il devrait être assez simple. Je présente cette réponse pour montrer comment cela peut être fait en utilisant jQuery en seulement quelques lignes de code.

<div id="placeholder">Please wait, loading...</div>

<script type="text/javascript" src="/path/to/jquery.js">
</script>
<script type="text/javascript>
$(document).ready(function() {
    $('#placeholder').load('/path/to/my/locally-served/page.html');
});
</script>

Si vous essayez de charger une ressource à partir d'un serveur différent de celui sur lequel vous vous trouvez, un moyen de contourner les limitations de sécurité serait de proposer un script proxy, qui pourrait récupérer le contenu distant sur le serveur et donner l'impression qu'il provient de votre propre domaine.

Voici la documentation sur les fonctions de jQuery load méthode : http://docs.jquery.com/Ajax/load

Il y a une autre fonctionnalité intéressante à noter, à savoir le chargement partiel des pages. Par exemple, disons que votre page distante est un document HTML complet, mais que vous ne voulez que le contenu d'une seule div dans cette page. Vous pouvez passer un sélecteur à la fonction load comme dans mon exemple ci-dessus, ce qui vous simplifiera encore la tâche. Par exemple,

$('#placeholder').load('/path/to/my/locally-served/page.html #someTargetDiv');

Bonne chance !
-Mike

1voto

Greg Hewgill Points 356191

Il existe deux approches générales :

  • Modifiez votre code Python pour qu'il s'exécute en tant que module CGI (ou WSGI ou autre) et générez la page qui vous intéresse en exécutant un module côté serveur code.
  • Utilisez Javascript avec jQuery pour charger le contenu qui vous intéresse en exécutant quelques commandes côté client code.

La différence entre ces deux approches est l'endroit d'où le serveur tiers voit les demandes venir. Dans le premier cas, il s'agit de votre serveur web. Dans le second cas, c'est le navigateur de l'utilisateur qui accède à votre page.

Certains navigateurs peuvent ne pas gérer le chargement de contenu provenant de serveurs tiers de manière très élégante (c'est-à-dire qu'ils peuvent afficher des boîtes d'avertissement ou autre).

0voto

Kai Points 4954

Vous pouvez intégrer Python. La méthode la plus simple consiste à utiliser l'option cgi module. Si le script sera exécuté souvent et que vous utilisez Apache, il serait plus efficace d'utiliser mod_python o mod_wsgi . Vous pouvez même utiliser un cadre Python tel que Django et coder l'ensemble du site en Python.

Vous podría Il est également possible de coder cela en Javascript, mais ce serait beaucoup plus délicat. Les requêtes intersites posent de nombreux problèmes de sécurité (ah, l'Internet peu sûr) et c'est donc un domaine délicat lorsque vous essayez de le faire par l'intermédiaire du navigateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X