DMMスクレイピング × WordPress ITかあさん

ITかあさん

DMMスクレイピング × WordPress


DMMのアニメ声優リストから声優のカテゴリーをスクレイピング

DMMの商品ページをスクレイピングする前にカテゴリーとなる声優のリストをスクレイピングします。
一回で回せなくもないのですが、重くなってしまうことを考慮して『あ』行に絞ります。
DMM.com アニメ動画 [声優・俳優一覧: あ行 – あ]

カテゴリースクレイピングコード

スクレイピングのごく基本的な使い方、simple_html_domのタウンロードについてはこちらを参考に。

category.php

// simple_html_dom.phpファイルの読み込み
  include_once('simplehtmldom_1_5/simple_html_dom.php');
  //スクレイピングしたいURLを指定
require_once 'MDB2.php';//ライブラリのロード
//DSN
  $db = "mysql://DBユーザー名:パスワード@localhost/データベース名?charset=utf8";
//接続
  $mdb2 =& MDB2::factory($db);
//スクレイピングしたいURLを指定
  $html = file_get_html('http://www.dmm.com/digital/anime/-/actor/=/keyword=a');
//○○の中のある特定の要素もCSSと同じように指定できます。
  foreach($html->find('table.sect-voicelist th a') as $key => $element){
//DMMは文字コードがEUC-JPなため、文字コードをUTF-8に変換
  $str = mb_convert_encoding($element, "UTF-8", "EUC-JP");
echo strip_tags($str);
//タグが含まれているので、タグを排除。カテゴリーのタイトルになる
  $name = strip_tags($str);
//URLエンコード。Wordpressにはなぜかこれが必要?
  $name_encode = urlencode($name);
$URL =  'http://www.dmm.com'.$element->href.'view=text/';
$url = explode("=", $URL);
$id = str_replace ('/view', '', $url[3]);
//以下Wordpressのカテゴリーを登録するためのSQLと、その実行
  $mdb2->exec("INSERT INTO `wp_terms` (`term_id`, `name`, `slug`, `term_group`) VALUES
  ($id, '$name', '$name_encode', 0)");
//カテゴリーと、投稿記事の関連。
  $mdb2->exec("INSERT INTO `wp_term_relationships` (`object_id`, `term_taxonomy_id`, `term_order`) VALUES
  ($id, 2, 0)");
//カテゴリーの詳細情報
  $mdb2->exec("INSERT INTO `wp_term_taxonomy` (`term_taxonomy_id`,`term_id`, `taxonomy`, `description`) VALUES
  ($id,$id, 'category', '{$name}の出演アニメリストです。')");
}

そして、これをWordpressをインストール完了したサーバーの閲覧可能ディレクトリ(どこでもOK)に設置してアクセスします。

DBに無事接続できれば、以下URLにアクセスがあるとWordpressのインストされているDBに対してカテゴリの登録があります。

http://anime.kaasan.biz/category.php

ページ: 1 2 3 4 5