Edited at

PHPでスクレイピング

More than 5 years have passed since last update.


simple_html_dom.phpのメモ

かなり簡単にできます。

simple_html_dom.phpを読み込むパスを間違えないように注意。


PHP

<div id="catch_contents">

<?php
include_once('../js/simple_html_dom.php'); ///////// パス注意 ///////
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'ここにスクレイピングしたいURL');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
$str = curl_exec($curl);
curl_close($curl);
$html= str_get_html($str);
//////////////////// ↓↓ここで取りたい要素を指定 ////////////////////
foreach($html -> find('div[id=news] ul li a') as $list){
//////////////////// ここから表示部分////////////////////////////////
echo "<ul class='news'>"; ///////任意のクラスを付けている
echo "<li class='news'>";
echo "<p>";
echo "<a href='";
echo "スクレイピング先のURL"; /////// http://○○○.com など
echo $list->href;
echo "'>";
echo "<img class='fashion_img' src='"; /////このクラスは任意
echo "スクレイピング先のURL"; /////// http://○○○.com など
echo $list->children(0)->src;
echo "' width='160' height='107'>"; ////// 画像の大きさ指定
echo $list->children(1)->outertext;
echo "</a>";
echo "</p>";
echo "</li>";
echo "</ul>";
}
$html -> clear();
unset($html);
?>

</div>

●これを表示したいトコロに記述するだけ。

 画像の大きさを指定しているトコロはCSSでも可能。

 (width と height を100%にしておいてCSSで調整する)


●取りたい要素(div id=news のところ)は

 スクレイピング先のソースを見て直上のdiv要素を指定。

 classでも可能です。


●id=news のあとの ul li a も、スクレイピング先のソースです。

 ここはスクレイピング先のソースがどうなっているかで変わります。


●スクレイピング先に画像がない場合は

 img class … から

 height 107 までの行を消す。


ダウンロード:simple_html_dom.php

中央下段の【Download】ボタン