2012-03-21 12 views
6

PHPでユーザーから与えられたURLから別のページの小さなプレビューを作成する方法を探しています。PHPでのWebスクレープ

私は、ページのタイトル、画像(ウェブサイトのロゴのようなもの)、テキストまたは説明がある場合はそれを取得するだけです。外部ライブラリ/クラスなしでこれを行う簡単な方法はありますか?おかげ

は、これまでのところ私は、HTMLをロードして画面に表示する、DOCDocumentクラスを使用してみましたが、私はそれはそれあなたがこのためにSimpleHtmlDomを使用することができます

+1

はい。がある。あなたはグーグルですか?何か試しましたか? –

+1

はい、私はしなかった場合、私はここで尋ねていないでしょう – federicot

+1

あなたは何を試しましたか? –

答えて

14

この場合、simple_html_domをお勧めします。それは非常に簡単になります。

ここでは、タイトルと最初のイメージをプルする方法の実例を示します。

<?php 
require 'simple_html_dom.php'; 

$html = file_get_html('http://www.google.com/'); 
$title = $html->find('title', 0); 
$image = $html->find('img', 0); 

echo $title->plaintext."<br>\n"; 
echo $image->src; 
?> 

これは、外部ライブラリなしで同じことを行う2番目の例です。私はHTML上で正規表現を使用することは良い考えではないことに注意する必要があります。

<?php 
$data = file_get_contents('http://www.google.com/'); 

preg_match('/<title>([^<]+)<\/title>/i', $data, $matches); 
$title = $matches[1]; 

preg_match('/<img[^>]*src=[\'"]([^\'"]+)[\'"][^>]*>/i', $data, $matches); 
$img = $matches[1]; 

echo $title."<br>\n"; 
echo $img; 
?> 
+0

お返事ありがとうございます。私は誰もが推薦しているように、シンプルなHTML Dom Parserライブラリに固執すると思います – federicot

2

を行うための適切な方法だとは思いません。タイトルとimgタグ、またはこれまでに何をする必要があるかを探します。

+1

私がこれまでに使った中で最も優れた第三者のライブラリの1つです。強くお勧めします。 – cchana

関連する問題