Home > PHP | rhaco > AV女優の画像を取得する(Conveyorネタ)

AV女優の画像を取得する(Conveyorネタ)

以前に作った「Conveyor(旧名PRhagger)で日本のAV女優一覧のRSSを取得してみる」に追加する形でそこにAV女優の画像(顔写真)を検索して追加するようなworker(filter)を作ってみました。
画像はDMMアダルト AV女優情報の検索結果をスクレイピングする形で取得します。
DMMはアフィリエイトをしているので、urlにはconfigに入力したアフィリエイトIDを追加したURLを返すようにします。

<?php

Rhaco::import("model.FilterBase");
Rhaco::import("tag.feed.Rss20");
Rhaco::import('tag.model.SimpleTag');
Rhaco::import('network.http.Http');
Rhaco::import("network.http.Browser");
Rhaco::import("lang.StringUtil");
Rhaco::import("io.Cache");

/**
 *
 * FilterAvActressPict
 *
 * @author fumix
 * @license New BSD License
 * @copyright Copyright 2008- The Rhacophorus Project. All rights reserved.
 */
class FilterAvActressPict extends FilterBase{
    function execute($rss20)
    {
        $channel = $rss20->getChannel();
        $items =& $rss20->getItem();

        $rss20_filtered = new Rss20();
		$rss20_filtered->setChannel($channel->getTitle(),
			$channel->getDescription(),
			$channel->getLink(),
			"ja"
		);

        foreach ($items as $item) {
            $rtn = $this->searchAV($item->getTitle());
            $av = $item->getDescription().$rtn['img'];
            $item->setDescription($av);
            $item->setLink($rtn['url']);
            $rss20_filtered->setItem($item);
        }
        return $rss20_filtered;
    }

    /**
     * searchAV
     *
     * @access protected
     * @param string $message
     */
    function searchAV($message)
    {
        $cache = new Cache();
        $parm = urlencode(StringUtil::encoding($message,StringUtil::EUC()));
        $browser = new Browser();
        //キャッシュを利用
        if($cache->get($parm)){
    	   $page = $cache->get($parm);
        }else{
        	$page = StringUtil::encoding($browser->get("http://www.dmm.co.jp/search/?category=actress&analyze=V1EAAVYEUQs_&redirect=1&searchstr=".$parm));
        	$cache->set($parm,$page);
        }
		$tag = new SimpleTag();
		$tag->set($page);

        $tbl= $tag->getIn('table');
        $body = $tbl[1]->getIn('body');
        $a = $body[0]->getIn('a');
        $img = $body[0]->getIn('img');
        if(count($a)>2){
            if($a[3]->getValue() != '0'){
                $img = '<img src="'.preg_replace("/thumbnail\//","",$img[0]->getParameter("src")).'" />';
                $url = $a[3]->getParameter("href").$this->variable("id");
                return array("img" => $img, "url" => $url);
            }
        }
        return array("img" => "", "url" => "");
    }

    function description()
    {
        return "feedのタイトルからDMMのAV女優情報を検索して画像を取得";
    }

    function config(){
        $config = array(
            "id" => "アフィリエイト",
        );

        return $config;
    }
}
?>

ダウンロードして解凍後、workerフォルダに放りこんでください。

Conveyor上でCustomfeedAvActressと組み合わせて実行したイメージはこんな漢字です。
2008年デビューのAV女優の一覧です。

レシピはこんな感じ

<?php
require_once("__init__.php");
Rhaco::import("Conveyaml");
Conveyaml::execute(
<<< __YAML__
---
plugins:
  -
    module: CustomfeedAvActress.CustomfeedAvActress
    config:
      initial:
      name:
      yomi:
      debut: 2008
  -
    module: FilterAvActressPict.FilterAvActressPict
    config:
      id: dmmpress-001
  -
    module: HtmlOut.HtmlOut
__YAML__
);

?>

※ConveyorはPHPフレームワークであるRhaco上で動くwebアプリケーションです。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.planet-ape.net/blog/archives/570/trackback
Listed below are links to weblogs that reference
AV女優の画像を取得する(Conveyorネタ) from planet-ape|blog

Home > PHP | rhaco > AV女優の画像を取得する(Conveyorネタ)

Search
Feeds
Meta

Return to page top