2017-08-12 4 views
1

を使用してロードされた値を使用してHTMLページ内の...ScapingのIFrame私はPHPを使用して、このHTMLページをこすりする必要がAjaxリクエスト

http://www.cittadellasalute.to.it/index.php?option=com_content&view=article&id=6786:situazione-pazienti-in-pronto-soccorso&catid=165:pronto-soccorso&Itemid=372 

...私は、行「ロッソ」の数字を抽出する必要があり、 "Giallo"、 "Verde"、 "Bianco"(これらの数字は動的なので、ページを更新すると変更できますが、問題はありません....)

これらの行は... http://listeps.cittadellasalute.to.it/?id=01090201などのIFrame内にあり、値はajaxリクエストを使用してロードされます(例:http://listeps.cittadellasalute.to.it/gtotal.php?id=01090101)。

PHPを使って、$ xpath-> queryを使って元のHTMLページからこれらの値を直接抜き出す方法がありますか?

提案/例?

答えて

1

私は、問題は、値が元のページにないこと、それらがページが読み込まれた後に構築されることだと思います。だから、あなたがやりたいことを少し残忍にしているJavaScriptの機能(Selinium webdriver)をすべて尊重するものを使う必要があります。 IFrameを直接処理する方がずっと簡単です。

あなたは...(今)を与える

$url = "http://www.cittadellasalute.to.it/index.php?option=com_content&view=article&id=6786:situazione-pazienti-in-pronto-soccorso&catid=165:pronto-soccorso&Itemid=372"; 
$pageContents = file_get_contents($url); 
$page = simplexml_load_string($pageContents, "SimpleXMLElement", LIBXML_NOERROR | LIBXML_ERR_NONE); 

$ns = $page->getDocNamespaces(); 
$page->registerXPathNamespace('def', array_values($ns)[0]); 
$iframes = $page->xpath("//def:iframe"); 
foreach ($iframes as $frame) { 
    echo "iframe:".$frame['src'].PHP_EOL; 
} 

をURLの元のページからiFrameをのを抽出でき

iframe:http://listeps.cittadellasalute.to.it/?id=01090101 
iframe:http://listeps.cittadellasalute.to.it/?id=01090201 
iframe:http://listeps.cittadellasalute.to.it/?id=01090301 
iframe:http://listeps.cittadellasalute.to.it/?id=01090302 

あなたは、これらのページを処理することができます。

+0

はい、IFrameコードを見てきました。また、値をロードするためにPHP(例:http://listeps.cittadellasalute.to.it/gtotal.php?id=01090101)を使用しています...おそらくそれは直接行うことはできません... – Cesare

+0

私が言及したように直接可能な唯一の方法は、Javascriptを解釈するものです。あなたは別の方法を見つけることができますが、その間に問題を解決して進むことができます。 –

関連する問題