2010-07-20 48 views
22

Ứng dụng của tôi cần truy xuất thông tin về bất kỳ sách được xuất bản nào dựa trên ISBN, tiêu đề hoặc tác giả được cung cấp. Đây không phải là một yêu cầu duy nhất --- các trang như Amazon.com, Chegg.com và thậm chí cả phần mềm như Book Collector dường như có thể thực hiện điều này một cách dễ dàng. Nhưng tôi đã không thể tái tạo nó.Cách tải siêu dữ liệu sách?

Để làm rõ, tôi không cần phải tìm kiếm toàn bộ cơ sở dữ liệu của sách --- chỉ một tập hợp con giới hạn đã được nhập, như trong tập hợp sách. Cơ sở dữ liệu sẽ chỉ cho phép tôi gắn thẻ các sách đã nhập với siêu dữ liệu cần thiết để cho phép tìm kiếm trên tập con sách đó. Vì vậy, quy mô không phải là vấn đề ở đây --- nhận được siêu dữ liệu.

Các tùy chọn Tôi đã thử là:

  1. Cạo Amazon. Cạo các trang Amazon thông thường không phải là rất mạnh mẽ với những thứ như tác giả mất tích, và trong khi cạo các trang di động nhỏ hơn nhanh hơn, họ chia sẻ cùng một vấn đề với sự khai thác mạnh mẽ. Ngoài ra, việc xây dựng ứng dụng này thành một ứng dụng là vi phạm rõ ràng Điều khoản dịch vụ của Amazon.
  2. Cạo Thư viện Quốc hội. Trong khi điều này dường như có ít chi nhánh pháp lý, dễ dàng và mạnh mẽ lại là vấn đề.
  3. ISBNdb.com API. Trong khi dịch vụ miễn phí đến một điểm và thực hiện tốt công việc trả về siêu dữ liệu cần thiết, tôi cần thực hiện việc này cho hơn 500 cuốn sách hàng ngày, tại thời điểm này dịch vụ này chi phí tiền tương ứng với việc sử dụng. Tôi muốn một giải pháp thanh toán miễn phí hoặc một lần cho phép tôi làm như vậy.
  4. API dữ liệu sách của Google. Mặc dù điều này dường như cung cấp thông tin tôi cần, nhưng tôi không thể hiển thị xem trước sách vì các điều khoản dịch vụ của họ yêu cầu.
  5. Mua giấy phép cho cơ sở dữ liệu sách. Ví dụ: các công ty như Ingram hoặc Baker & Taylor cung cấp các danh mục này cho các nhà bán lẻ và thư viện. Giải pháp này rõ ràng là đắt tiền, vì vậy tôi hy vọng rằng có một giải pháp thanh lịch hơn tôi đã bỏ qua. Nhưng nếu không, và ai đó trên SO đã có một kinh nghiệm tốt với một cơ sở dữ liệu cụ thể, tôi sẵn sàng đi với điều đó.

Tôi đã cố gắng mô tả chi tiết cách tiếp cận của mình để những người khác có ít sách hơn có thể tận dụng các giải pháp trên. Nhưng với yêu cầu của tôi, tôi đang ở cuối trí thông minh của tôi để lấy siêu dữ liệu sách, vì vậy bất kỳ con trỏ nào được đánh giá cao.

+0

Bạn đã thử [Goodreads API] (https://www.goodreads.com/api) chưa? – Veenit

Trả lời

4

Vì không chắc bạn phải lấy 500 cuốn sách cùng một ngày: lưu trữ dữ liệu được lấy từ isbndb.com trong cơ sở dữ liệu và điền vào sách theo sách.

+0

Tôi muốn làm điều này, nhưng giới hạn 500 cuốn sách mỗi ngày là một hạn chế đáng kể bất cứ khi nào tôi tải lớn (~ 30.000) hàng tồn kho vào cơ sở dữ liệu. Sẽ là lý tưởng để cùng nhau hack API hoặc mua quyền truy cập vào cơ sở dữ liệu hiện có mà sau đó tôi có thể sử dụng mà không có giới hạn về số lần tra cứu. – Saketh

+0

với số lượng lớn các mặt hàng có vẻ như bạn đang đi tuyến đường chuyên nghiệp. tôi nghi ngờ rằng bất kỳ dịch vụ nào cũng sẽ cho phép bạn sao chép cơ bản các cơ sở dữ liệu mà không phải trả tiền (nghiêm túc). – akira

+0

Vấn đề là đầu vào được so le (ví dụ: 10.000 cuốn sách cùng một lúc, sau đó không có thời gian), nhưng việc nhập vào phải được thực hiện cùng một lúc. – Saketh

1

Như có vẻ như, rất nhiều các thư viện và các tổ chức khác cung cấp thông tin như "ISBN" có sẵn thông qua máy có thể đọc Cataloging aka MARC, bạn có thể tìm thêm thông tin về nó here là tốt.

Bây giờ, hãy biết cụm từ "đúng" để tìm kiếm Tôi đã phát hiện WorldCat.org.

Có lẽ điều này hoàn toàn MARC mang đến cho bạn một loại mới của một ý tưởng :)

+0

Không có cách mở hay trả tiền hợp lý nhưng dễ sử dụng để giải quyết vấn đề bằng cách sử dụng các bản ghi MARC, vì các trang web như WorldCat thường yêu cầu một thư viện để truy cập API tìm kiếm của họ. Tôi đã rất ngạc nhiên, bởi vì người ta sẽ nghĩ rằng một danh mục sách công khai sẽ dễ tìm! – Saketh

+0

để bạn không thể sử dụng api tìm kiếm (http://worldcat.org/devnet/wiki/SearchAPIDetails)? – akira

+0

API WorldCat sử dụng khóa truy cập - Tôi đã yêu cầu một khóa, nhưng nếu tôi có thể tìm được giải pháp độc lập tuyệt vời. – Saketh

4

Thay vì cào Amazon, bạn có thể sử dụng API họ phơi bày cho chương trình liên kết của họ: https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html

Nó cho phép khoảng 3k yêu cầu mỗi giờ và trả về XML được định dạng tốt. Nó đòi hỏi bạn phải thiết lập một liên kết đến cuốn sách mà bạn hiển thị thông tin về, và bạn phải nói rằng bạn là một đối tác liên kết.

Các vấn đề liên quan