PHPスクレイピングRSS化

PerlをバージョンアップするとWeb::ScraperXML::FeedPPが動かなくなったのでPHPスクレイピング

Perlは文字の設定?がわからなかったのでまだPHPの方が書きやすい

simplehtmldom.sourceforge.io

github.com

<?php

require_once 'simple_html_dom.php';

require_once('Item.php');
require_once('Feed.php');
require_once('RSS2.php');

date_default_timezone_set( 'Asia/Tokyo' );

use \FeedWriter\RSS2;
$feed = new RSS2;

$url = 'https://www.police.pref.ehime.jp/sokuho/sokuho.htm';

//サイト情報登録
$feed->setTitle('愛媛県警 事件事故速報');
$feed->setLink($url);
$feed->setDate(new DateTime());

$html = file_get_html($url);

foreach($html->find('#toppage div table tbody tr td') as $article) {

    //アイテム情報初期化
    $item = $feed->createNewItem();

    $title = trim( str_replace('■', '', $article->find('b')[0]->plaintext) );

    $content = trim( str_replace( array( $title, '■' ), '', $article->plaintext) );

    //タイトル
    $item->setTitle( $title );

    //内容
    $item->setDescription( $content );

    $feed->addItem( $item );
}

//フィード生成
$rss = $feed->generateFeed();

//ファイル保存
file_put_contents( 'ehime-sokuho.rss' , $rss );

echo $rss;

?>