2011-12-17 7 views
1

私はクーポンサイトを解析し、それらのクーポンを一覧表示するWebサイトで作業しています。リストをXMLファイルとして提供するサイトがいくつかありますが、これらのサイトには問題ありません。しかし、XMLを提供しないサイトもあります。私は自分のサイトを解析し、サイトコンテンツからクーポン情報を取得することを考えています。これは、PHPでHTMLからデータを取得することです。私はPHPで働いている同じ種類の複数の記事のデータを取得するためにPHPでHTMLを解析する

http://www.biglion.ru/moscow/

:例として、次のサイトを参照してくださいすることができます。だから私の質問は、HTMLを解析して、XMLを解析するときと同じように、そのサイトにリストされている各クーポンのデータを取得する比較的簡単な方法ですか?

ありがとうございました。

答えて

2

あなたはいつもDOM parserを使用しますが、サイトのコンテンツをこすることで、最高の信頼性が低いことができます。

レイアウトが少しずつ変更されると、アプリが失敗する可能性があります。ああ、ほとんどの場合、ほとんどのサイトがそうするトスに対してもだ...

+0

ご回答ありがとうございます。私はPHP Simple HTML DOM Parserという良いものを見つけました。それは実際にトリックです。 – cycero

0

DOMパーサを使用すると、良いアイデアに思えるかもしれませんが、私は通常こするために、古き良き正規表現を好みます。それははるかに少ない仕事であり、もしあなたのアプローチが何であれ、サイトがレイアウトを変更するなら、あなたはとにかく戸惑います。しかし、スマートな正規表現を使用する場合、あなたのコードはあなたが興味を持っている部分に直接影響を与えない変更に影響されないようにする必要があります。

覚えておいていただきたいことは、あなたが必要とする情報の間に何かがあると想定することができます。例えば。

preg_match_all('#class="actionsItemHeadding".*?<a[^>]*href="([^"]*)"[^>]*>(.*?)</a>#s', file_get_contents('http://www.biglion.ru/moscow/'), $matches, PREG_SET_ORDER); 
print_r($matches); 
0

最も信頼できる方法は、PHPで作業したい場合は、PHP DOMパーサです。 ここでは、要素のみを解析する例を示します。

// Include the library 
include('simple_html_dom.php'); 


// Retrieve the DOM from a given URL 
$html = file_get_html('http://mypage.com/'); 
// Find all "A" tags and print their HREFs 
foreach($html->find('a') as $e) 
echo $e->href . '<br>'; 

他のhtml要素の解析についてもsome more informationを提供しています。 私はあなたに役立つことを願っています。

関連する問題