アメブロのアレ関連でもありますが、海外(英語圏)のサイトをクロールして、まとめブログを作ろうかなと。
Google のクロール目当てなので、Wordpress で立てるだけで十分なので、
手順としては、
- 主要な英語圏のプログラム系ブログから、RSS を受信
- 適当にサマリを整形して、定期的にブログにアップ
を自動化させます。
英語圏のブログを集めるのは、Google のクロールに対応するためです。このブログもそうですが、英単語(コンピュータ系の用語)が入っているブログは、結構 Google からのアクセス数があります。まぁ、ロボットのアクセスがあったところで、どうということもないのですが、アメブロのアレをするためには、ロボットであってもアクセスがあるほうがいいので。
という訳で、定期的に2,000PV/日ぐらいあるサイトを作ります。
RSS で集めるときに、PHP で書いてもいいんですが、まぁ、.NET のクライアントを作ります。
.NET には、RSS フィードのクラスがあって、
System.ServiceModel.Syndication を参照設定します。
RSS 2.0/ATOM 1.0フィードを処理するには?[3.5、C#、VB]http://www.atmarkit.co.jp/fdotnet/dotnettips/753rssfeed/rssfeed.html
を参考にして、作ったのがこれ(ほとんど同じですが)。
class Program
{
static void Main(string[] args)
{
if (args.Count() != 1)
{
Usage();
return;
}
string url = args[0];using (XmlReader rd = XmlReader.Create(url))
{
SyndicationFeed feed = SyndicationFeed.Load(rd);
Console.WriteLine(“題名: {0}”, feed.Title.Text);
Console.WriteLine(“詳細: {0}”, feed.Description.Text);
foreach (SyndicationItem item in feed.Items)
{
Console.WriteLine(“—“);
Console.WriteLine(“件名: {0}”, item.Title.Text);
Console.WriteLine(“日付: {0}”, item.PublishDate.ToString());
Console.WriteLine(“内容: {0}”, item.Summary.Text);
}
Console.WriteLine(“—“);
}}
static void Usage()
{
Console.WriteLine(“ReadRSS [URL]”);
Console.WriteLine(“URL: RSS配信のURL”);
return;
}
}
引数にURLを指定して、RSSフィールドを受信します。
これをバッチにするか、常駐プログラムにするかすればOKですね。RSSリーダーを作る気はないので、UIはどうでもいいのです。DBに入れるか、XML形式で保存するか、というところです。
もう一方のブログへのアップロードですが、XML-RPCを使うか、Atom Publishing を使います。どうやら、
XML-RPC.Net
http://www.xml-rpc.net/
のライブラリを使って、さっくりと WordPress にアップロードできれば、それで十分かも、と思っています。
で、
ふと思ったのですが、アップロードを自動にするのであれば、何も wordpress などを経由する必要はないんですよね。直接 HTML を吐き出して、ftp でアップロードする、バッチを書けばいいわけで…こっちのほうが私的には簡単そう。
wordpress を利用したほうが、デザイン面でテンプレートの流用ができるのですが、今回の目的は「アメブロのアレ」のためのサイトなので、人間に対するデザインは必要ありません。
まあ、電子書籍サイトの技術調査も含めて、XML-RPC.NET を使ってみますか。ちょっと思案。