ホーム > タグ > Conveyor
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
- Trackbacks: 0
Home > Tags > Conveyor
- Search
- Feeds
- Meta
