Comment obtenir de l'iframe de contenu à partir d'une distance de page?
Je pense que PHP est inutile, à propos de l'iframe est inséré après le php est exécuté, ou je me trompe?
Donc, la seule solution que j'en suis conscient, c'est d'utiliser Javascript/jQuery.
E. g. cela ne peut fonctionner que si le JS serait sur la même page comme l'iframe:
<html>
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">
$(function() {
var myContent = $("#iFrame").contents().find("#myContent")
});
</script>
</head>
<body>
<iframe src="mifile.html" id="iFrame" style="width:200px;height:70px;border:dotted 1px red" frameborder="0">
<div id="myContent">
iframe content blablabla
</div>
</iframe>
</body>
</html>
Cependant, je suis à l'aide du Simple HTML DOM bibliothèque de saisir le lointain page web comme:
$url = 'http://page-with-some-iframe.com/';
$html = file_get_html( $url );
//Find iframes and put them in an array
$iframes_arr = array();
foreach($html->find('iframe') as $element) {
$iframes_arr[] = $element->outertext;
}
var_dump($iframes_arr);
die();
Mais évidemment, rien n'est renvoyé ;(, parce que les iframes sont affichés après le php est exécuté ;(
Donc, je pensais que je serais probablement besoin d'injecter de ce code:
<script type="text/javascript">
$(function() {
var myContent = $("#iFrame").contents().find("#myContent")
});
</script>
dans l'en-tête de mon attrapé la page stockée dans $html.
Aucune idée de comment obtenir le contenu de l'iframe comme ça, ou est-ce trop compliqué approche et certains plus facile solution existe?
OriginalL'auteur | 2013-05-21
Vous devez vous connecter pour publier un commentaire.
Vous ne serez pas en mesure d'accéder à un document d'une page dans un iframe à l'aide de javascript en raison de la même origine.
Si vous connaissez l'URL de la page, vous pouvez utiliser PHP CURL pour récupérer
si CURLOPT_RETURNTRANSFER définie sur true, le curl_exec retourne la valeur false. Comment grabe contenu si CURLOPT_RETURNTRANSFER défini à false ?
OriginalL'auteur michael
Il n'est pas possible en raison de la politique de sécurité.
Si vous êtes en mesure d'obtenir le contenu de la distance iframe - vous pouvez voler quelqu'un de facebook ou de données bancaires avec facilité. C'est pourquoi tous les navigateurs web les blocs de ce.
foreach($detail_page_url_html->find('div.entry iframe') as $element) { $iframes_arr[] = $element->src; }
Ouais, mais vous obtenez ce que vous, avec vos cookies, votre adresse ip, votre useragent, pas de le visiteur du site. Et, vous obtenez uniquement les initiales src qui était dans la source html de la page
Ouais, mais je ne peux utiliser que l'URL et l'analyse à l'étape suivante (boucle foreach). Je peux mettre aussi l'en-tête, useragent en curl. Ce n'est pas sûr IP et cookies 😉 je ne suis qu'un débutant en PHP.
Vous ne pouvez pas accéder à toutes les données dont les utilisateurs du navigateur obtenu dans un iframe. Il est probable que vous deviner le mot de passe puis vous deviner tous les cookies. Pas que beaucoup de sites valide également l'agent utilisateur (que vous pouvez définir) et ip (que vous ne pouvez pas définir).
Vous vous trompez, je suis en train de faire savoir via le script PHP 😉
OriginalL'auteur peku33