2011-02-05 12 views
2

私の個人的な目的のために、私は約300人の著者(フルネーム)の様々な本を持っています。このリストを「フィクション作家」と「ノンフィクション作家」に分割したいと思います。著者が両方を書くと、大多数が投票権を得る。本の著者をフィクションとノンフィクションとに分類する

私は、アマゾン商品検索のAPIを見て:私は著者(in Python)で検索することができますが、ブックカテゴリ(残り対フィクション)を検索する方法はありません。

>>> node = api.item_search('Books', Author='Richard Dawkins') 
>>> for book in node.Items.Item: 
...  print book.ItemAttributes.Title 

私のオプションは何ですか?私はこれをPythonでやるのが好きです。

+1

"author name fiction"と "author name nonfiction"をGoogleで検索できますか? – btilly

+0

@btilly - 興味深いですが、 'Richard Dawkins fiction'は 'Richard Dawkins nonfiction'より* more * resultsを返します。 –

+0

あなたの基準では、彼はフィクションの書き込みとして分類されるべきです。私はこの結論に同意しない。あなたのコメントで判断すると、あなたもそうではありません。だからあなたの基準を調整する必要があります。 –

答えて

4

もう1つのサービス、Google Book Search APIを試すことができます。 Pythonを使用するにはgdata-python-apiをご覧ください。そのプロトコルでは、結果のフィードにノード<dc:subject>がある - 何が必要でしょうthat's

<?xml version="1.0" encoding="UTF-8"?> 
<feed xmlns="http://www.w3.org/2005/Atom" 
     xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" 
     xmlns:gbs="http://schemas.google.com/books/2008" 
     xmlns:dc="http://purl.org/dc/terms" 
     xmlns:gd="http://schemas.google.com/g/2005"> 
    <id>http://www.google.com/books/feeds/volumes</id> 
    <updated>2008-08-12T23:25:35.000</updated> 

<!-- a loot of information here, just removed those nodes to save space.. --> 

    <dc:creator>Jane Austen</dc:creator> 
    <dc:creator>James Kinsley</dc:creator> 
    <dc:creator>Fiona Stafford</dc:creator> 
    <dc:date>2004</dc:date> 
    <dc:description> 
     If a truth universally acknowledged can shrink quite so rapidly into 
     the opinion of a somewhat obsessive comic character, the reader may reasonably feel ... 
    </dc:description> 
    <dc:format>382</dc:format> 
    <dc:identifier>8cp-Z_G42g4C</dc:identifier> 
    <dc:identifier>ISBN:0192802380</dc:identifier> 
    <dc:publisher>Oxford University Press, USA</dc:publisher> 
    <dc:subject>Fiction</dc:subject> 
    <dc:title>Pride and Prejudice</dc:title> 
    <dc:title>A Novel</dc:title> 
    </entry> 
</feed> 

もちろんが、このプロトコルは、などのGoogleブックス上に見えたりないように(あなたにこの本に関連するいくつかのオーバーヘッド情報を、提供します。)

+0

APIベースの検索はウェブベースの検索ほど信頼性が高くありませんが( "title:.. and author:.." APIクエリは何も返しませんが、ウェブ上で行います)、多くの書籍には件名が割り当てられませんこのソリューションは、「フィクション」の主題の下でほとんどのフィクション・ブックのカテゴリーとして、私のニーズに十分に適しています。 –

2

BrowseNodesを見ましたか?私には(前にこのAPIを使用していない)BrowseNodesはAmazonの商品カテゴリに対応しています。多分あなたはそこにもっと多くの情報を見つけるでしょう。

+0

私は 'BrowseNodes'を見ました。それはいくつかのカテゴリをリストアップしていますが、私は "ノンフィクション"カテゴリ(amazon.comでは他のカテゴリに表示されています)は表示されません。私は今Google Books APIを見ていきます... –

0

Amazon APIで時間を過ごした後、必要な情報を提供していないようです。

ドキュメントにはそのカテゴリのカテゴリは記載されていません。また、あなたが送ったものを連載すると、フィクションやノンフィクションのカテゴリーはひとつしか言及されません。

これを使用して、素敵なXML文字列を出力することができます(読みやすいようにファイルに指示することができます)。

from lxml import etree 

node = api.item_search('Books', Author='Richard Dawkins') 

print etree.tostring(node, pretty_print=True) 
関連する問題