2016-08-14 14 views
0

私はこのコードをウェブサイトからデータをスクレイプするために持っています。PHPを削る手助けが必要

<?php 
$html = file_get_contents('http://www.alanum.com/search.aspx?kw=GTX%20980');    //get the html returned from the following url 

$pk_doc = new DOMDocument(); 

libxml_use_internal_errors(TRUE); //disable libxml errors 

if(!empty($html)){ //if any html is actually returned 

$pokemon_doc->loadHTML($html); 
libxml_clear_errors(); //remove errors for yucky html 

$pk_xpath = new DOMXPath($pk_doc); 

//get all the h2's with an id 
$pk_row = $pk_xpath->query('//h4[@name="list-productname"]'); 
$pk_row2 = $pk_xpath->query('//div[@class="price"]'); 

if($pk_row->length > 0){ 
    foreach($pk_row as $row){ 
     echo $row->nodeValue . "<br/>"; 
    } 
} 
if($pk_row2->length > 0){ 
    foreach($pk_row2 as $row2){ 
     echo $row2->nodeValue . "<br/>"; 
    } 
} 
} 
?> 

は、私はこのクラスを持っているすべてのdivを取得している

'//div[@class]' 

場合は、インスタンスのためのタグをスキップんどのようにこするウェブに新しいですが、私はdiv要素の一部を省略することをIほしくない。それ、どうやったら出来るの?

もう一つの質問は$pk_rowは名前があり、$pk_row2が価格を持っているので、私は$pk_row$pk_row2を組み合わせて行う方法です。

1つの配列にこれらの値を格納したいとします。 name=>price=>

答えて

0

あなたは、私が唯一のあなたは、あなたが必要なものを見つけることがhttp://www.w3schools.com/xsl/xpath_syntax.aspを参照することができますスキップしたい要素を指定しません。

編集:'//div[not(@class="name-enlarged")]'

一つは、あなたがarray_combine($arrKeys, $arrValues)http://php.net/manual/en/function.array-combine.php

+0

「// divの[クラス@ = "名前-拡大を使用することができます値のためのキーと他の1のために使用されているように、2つの配列を結合するために"] 'このdivをスキップしなければならない場合、それは' // div [@class!=" name-expanding "] 'になりますか? –

+0

'// div [not(@ class = "name-expanding")]' – icaine

関連する問題