勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPでyoutubeから更新分の情報を取得する(スクレイピング)

   2014/07/04  PHP その他

「○○のサイトから自動更新分を持ってきて
自サイトに反映させらへん?」と以前に聞かれたことがあって、
調べてみたのでメモ。

テストの条件として、

・取得先はyoutube
・検索ワードである程度絞る

■ソース

<?php
$url = 'ここにURL'; //検索クエリ付きのURLでOK

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$line = curl_exec($ch);
$line = mb_convert_encoding($line,'UTF-8','auto');

$pattern="/<a class=\".*?\"[\n|\s]*dir=\".*?\"[\n|\s]*title=\"(.*?)\"[\n|\s]*data-sessionlink=\".*?\"[\n|\s]*href=\".*?v=(.*?)\"[\n|\s]*>/"; //正規表現でほしい情報を抜き出す。動画のIDっぽいのとタイトルを抜き出した
$match = array();
preg_match_all($pattern, $line, $match, PREG_SET_ORDER);

for ($i = 0; $i< count($match); $i++) {

	$title = $match[$i][1]; //タイトルが格納される
	$url = $match[$i][2]; //動画のIDが格納される

}
?>

 

ひっぱってきた情報をMySQLなりなんなりに突っ込む。

更新に関してはcronまわせばOK

 - PHP その他