[C#]dankogaiのAmazon APIを使用して、書籍情報を取得する

Dan Kogai氏が下記のページで公開しているamazonの書籍情報取得APIが有ります。
Ajax – AWS Caching Proxy w/ Authentication Support

これを利用して、C#にて指定したASINの書籍情報を取得するサンプルです。

//*********************************************************************
/// <summary> dan.co.jpのwebapiを使用してアマゾンの書籍情報を取得する
/// 
/// </summary>
/// <param name="asin">	検索キー(ASIN)</param>
/// <returns>書籍情報</returns>
//*********************************************************************-
private static XmlDocument searchItemInfoByAsin( string asin ) {
	string url = "http://api.dan.co.jp/asin/" + asin + ".xml";
	using (XmlReader reader = XmlReader.Create(url)) {
		XmlDocument doc = new XmlDocument();
		doc.Load( reader );
		return doc;
	}
}




上記メソッドの呼び元側は、以下のようになります。

//-----------------------
// 商品情報を取得する
//-----------------------
XmlDocument itemDoc = null;
try {
	itemDoc = searchItemInfoByAsin( "4534045220" );
} catch ( Exception ex ) {
	MessageBox.Show( "商品データの取得に失敗しました id[" + id + "]\n" + ex.Message );
	continue;
}
 
string asin     = getNodeTextDef( itemDoc, "/opt/ASIN",     "" );
string title    = getNodeTextDef( itemDoc, "/opt/ItemAttributes/Title",     "" );
string author   = getNodeTextDef( itemDoc, "/opt/ItemAttributes/Author",     "" );
string binding  = getNodeTextDef( itemDoc, "/opt/ItemAttributes/Binding",    "" );
string label    = getNodeTextDef( itemDoc, "/opt/ItemAttributes/Label",      "" );
string newPrice = getNodeTextDef( itemDoc, "/opt/ItemAttributes/ListPrice/FormattedPrice", "" );
string imageUrl = getNodeTextDef( itemDoc, "/opt/ImageSets/SwatchImage/URL", "" );
string linkUrl  = getNodeTextDef( itemDoc, "/opt/DetailPageURL", "" );
 
System.Console.WriteLine( asin     );
System.Console.WriteLine( title    );
System.Console.WriteLine( author   );
System.Console.WriteLine( binding  );
System.Console.WriteLine( label    );
System.Console.WriteLine( newPrice );
System.Console.WriteLine( imageUrl );
System.Console.WriteLine( linkUrl  );



サンプル中で使用しているgetNodeTextDef()については、このページを参照してください。

関連記事

コメントを残す

メールアドレスが公開されることはありません。