Категоризируйте авторов книги как беллетристику против беллетристики - PullRequest
2 голосов
/ 05 февраля 2011

В личных целях у меня есть около 300 авторов (полное имя) различных книг. Я хочу разделить этот список на «авторов художественной литературы» и «авторов научной литературы». Если автор пишет оба, тогда большинство получает голос.

Я посмотрел на API поиска товаров Amazon: я могу искать по автору ( в Python ), но нет способа найти категорию книги (художественная литература против остальных):

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

Какие у меня варианты? Я предпочитаю делать это на Python.

Ответы [ 3 ]

4 голосов
/ 05 февраля 2011

Ну, вы можете попробовать другой сервис - API Поиска книг Google . Чтобы использовать Python, вы можете взглянуть на gdata-python-api . В его протоколе в фиде результатов есть узел <dc:subject> - вероятно, , это , что вам нужно:

<?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 Книгах и т. Д.)

2 голосов
/ 05 февраля 2011

Вы смотрели на BrowseNodes?Мне (который ранее не использовал этот API) кажется, что BrowseNodes соответствует категориям продуктов AmazonМожет быть, вы найдете больше информации там.

0 голосов
/ 05 февраля 2011

Потратив некоторое время на то, чтобы возиться с API Amazon, похоже, что они не предоставляют нужную вам информацию.

Они не упоминают категории этого типа в своей документации, и если вы сериализируете материал, который вам присылает API, нет ни одного упоминания о фантастических или неигровых категориях.используйте его, чтобы распечатать красивую строку XML (вы можете направить ее в файл для удобства чтения) со всеми вещами, которые отправляет API.

from lxml import etree

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

print etree.tostring(node, pretty_print=True)
...