Автоматический поиск цитирования книг

У меня есть список книг, перечисленных по их названиям в текстовом файле. Я хочу написать скрипт, который может использовать веб-службу, такую ​​​​как Google Scholar или Amazon, для поиска книг и возврата мне файла xml или bibtex с информацией о цитировании для каждой книги. Какие инструменты программирования можно использовать для такого автоматического поиска?


person iceman    schedule 07.02.2010    source источник


Ответы (2)


Python был бы моей рекомендацией.

  • Получить имена из текстового файла, простое чтение файла
  • Создайте URL-запрос REST к API книги Google.

    http://books.google.com/books/feeds/volumes?q=Elizabeth+Bennet&start-index=21&max-results=10

  • Простой код Python для получения данных с этого URL-адреса (может потребоваться ключ API, рекомендуется использовать urllib2 с обработкой ошибок, а не urllib)

Образец кода,

 import urllib
 url = 'http://foo.api.request'
 data = urllib.urlopen(url).read()
  • См. схемы возврата для этого API (вы можете использовать XML по своему усмотрению).
  • См. BibTeXML для преобразования между двумя форматами.

ХТН

person viksit    schedule 09.02.2010
comment
Хорошо, по какой-то причине форматирование кода здесь не работает. Странный. - person viksit; 10.02.2010

Я думаю, было бы полезно, если бы вы указали, какой сценарий вы хотите написать!

В любом случае... вы можете выполнить некоторую низкоуровневую работу и написать свой собственный HttpRequest для Google и Amazon, или вы можете просто положиться на их API, например: http://code.google.com/apis/books/

Есть отличный проект, который делает что-то похожее на то, что вы хотите сделать, он называется «Полки». Он написан для Android, но должен дать вам некоторое представление о том, как обрабатывать ваши запросы. Вместо того, чтобы загружать некоторые цитаты, он загружает обложку.

http://code.google.com/p/shelves/

В качестве быстрого примечания, также можно сохранить ваши книги в файле xml. В некоторых случаях это облегчает их разбор.

person Community    schedule 07.02.2010