勉強したことのメモ

webプログラマが勉強したことのメモ。

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

      2014/07/04

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

テストの条件として、

・取得先は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, その他

  関連記事

フォーム用テンプレPHP

<?php ini_set( 'display_errors', 0 ); ...

PHPの文字化け対策

PHPファイルもDBも全部UTF-8で出来たらいいけど、 そうもいかない場合が多 ...

PHPでフォームの禁止ワード制限

掲示板等で本文を送信する際に、禁止ワードが含まれていないかチェックするプログラム ...

PHPでCSVファイルを作って開くと「SYLKファイルが云々」のアラートが出た

データベースのログを整形してCSVファイルを生成し、ダウンロード及びエクセルで開 ...

window.NREUMみたいなのがヘッダーとフッターに自動で挿入されてる

作っていたプログラムをブラウザからソース確認した時に見つけたんだけど、「wind ...

PHPで画像のサイズや拡張子等、詳細情報を取得

PHPで画像のサイズや拡張子等、詳細情報を取得する際 いつもググってしまっていた ...

SortableJSを使ってデータの並べ替え&保存

あるシステムを拝見した際にtableタグ内に並んでいる項目をドラッグ&ド ...

PHPでみたいに省略して書く際の設定

さくらvpsで<?=$hoge;?>とか省略して書こうとしても書けな ...

ペッパーフラッシュ(Pepper Plugin API)

最近職場で「ペッパーフラッシュが云々……」という会話が 聞こえて(ペッパーフラッ ...

PHPで画像にロゴをつける

フォームから送られてきた画像にロゴをつけたかった。 結論としてclass.upl ...