كيف يمكنني البحث عن بيانات الكتاب من رقم الباركود الخاص به؟[مغلق]

StackOverflow https://stackoverflow.com/questions/106963

سؤال

أقوم ببناء أبسط تطبيق للمكتبة في العالم.كل ما أريد أن أكون قادرًا على فعله هو مسح UPC (الرمز الشريطي) للكتاب باستخدام ماسح ضوئي نموذجي (الذي يكتب فقط أرقام الباركود في الحقل) ثم استخدامه للبحث عن بيانات حول الكتاب...على الأقل، العنوان، المؤلف، سنة النشر، وإما رقم كتالوج ديوي العشري أو مكتبة الكونغرس.

الهدف هو طباعة ملصق صغير ("ملصق العمود الفقري") مع رقم كتالوج البطاقة الذي يمكنني لصقه على ظهر الكتاب، وبعد ذلك يمكنني فرز الكتب حسب رقم كتالوج البطاقة على الرفوف في مكتبة شركتنا.بهذه الطريقة، تميل الكتب التي تتناول موضوعات متشابهة إلى أن تكون قريبة من بعضها البعض، على سبيل المثال، إذا كنت تعلم أنك تبحث عن كتاب عن المحاسبة، فكل ما عليك فعله هو العثور على كتاب ما عن المحاسبة وسترى النصف الآخر من الكتاب التي لدينا بجوارها مباشرة مما يجعلها مريحة لتصفح المكتبة.

ويبدو أن هناك الكثير من واجهات برمجة تطبيقات الويب للقيام بذلك، بما في ذلك أمازون ومكتبة الكونغرس.لكن هذه كلها مربكة للغاية بالنسبة لي.ما أريده حقًا هو وظيفة واحدة ذات مستوى أعلى تأخذ رقم الرمز الشريطي UPC وترجع بعض البيانات الأساسية حول الكتاب.

هل كانت مفيدة؟

المحلول

يوجد حل واضح للغاية قائم على الويب على موقع ISBNDB.com والذي قد ترغب في إلقاء نظرة عليه.

يحرر: تم تحديث رابط وثائق واجهة برمجة التطبيقات (API)، والآن يتوفر الإصدار 2 أيضًا

رابط الأسعار والمستويات هنا

يمكنك أن تكون جاهزًا للعمل في بضع دقائق فقط (هذه الأمثلة مأخوذة من API v1):

  • قم بالتسجيل في الموقع واحصل على مفتاح لاستخدام API
  • جرب عنوان URL مثل:

    http://isbndb.com/api/books.xml?access_key={مفتاحك}&index1=isbn&results=details&value1=9780143038092

النتائج = التفاصيل تحصل على تفاصيل إضافية بما في ذلك رقم كتالوج البطاقة.

جانبًا، عادةً ما يكون الرمز الشريطي هو الرقم isbn إما في isbn10 أو isbn13.كل ما عليك فعله هو حذف آخر 5 أرقام إذا كنت تستخدم الماسح الضوئي وقمت بالتقاط 18 رقمًا.

وهنا نموذج للرد:

<ISBNdb server_time="2008-09-21T00:08:57Z">
  <BookList total_results="1" page_size="10" page_number="1" shown_results="1">
    <BookData book_id="the_joy_luck_club_a12" isbn="0143038095">
      <Title>The Joy Luck Club</Title>
      <TitleLong/>
      <AuthorsText>Amy Tan, </AuthorsText>
      <PublisherText publisher_id="penguin_non_classics">Penguin (Non-Classics)</PublisherText>
      <Details dewey_decimal="813.54" physical_description_text="288 pages" language="" edition_info="Paperback; 2006-09-21" dewey_decimal_normalized="813.54" lcc_number="" change_time="2006-12-11T06:26:55Z" price_time="2008-09-20T23:51:33Z"/>
    </BookData>
  </BookList>
</ISBNdb>

نصائح أخرى

ملحوظة:أنا متخصص في LibraryThing، لذا فهذا ترويج جزئي للذات.

نلقي نظرة على هذه الإجابة StackOverflow, ، والذي يغطي بعض الطرق الجيدة للحصول على بيانات رقم ISBN محدد.

بالنسبة لمشكلاتك، تتضمن أمازون DDC بسيطًا (Dewey)؛جوجل لا.تعمل واجهة WorldCat API على ذلك، لكن يجب أن تكون مكتبة OCLC لتتمكن من استخدامها.

قضية ISBN/UPC معقدة.تفضل رقم ISBN، إذا كان بإمكانك العثور عليه.أحيانًا تحتوي الكتب الورقية ذات الأغلفة الكبيرة في السوق على UPCs من الخارج ورقم ISBN من الداخل.

قام أعضاء LibraryThing بتطوير بضع صفحات حول هذه القضية وعن الجهود المبذولة لرسم هاتين المشكلتين:

إذا اشتريت من Borders، فسيتم لصق جميع الرموز الشريطية الخاصة بكتابك باستخدام الرموز الشريطية الداخلية الخاصة بها (تسمى "BINC").الأمر الأكثر إزعاجًا هو أن الغراء الذي يستخدمونه يصبح أكثر صعوبة في إزالته بشكل نظيف بمرور الوقت.لا أعرف أي واجهة برمجة التطبيقات (API) التي تحولهم.LibraryThing يفعل ذلك عن طريق خدش الشاشة.

بالنسبة لواجهة برمجة التطبيقات (API)، سأختار أمازون.يعد LibraryThing خيارًا جيدًا بخلاف واجهة برمجة التطبيقات (API)، حيث يعمل على حل ملفات BINC وإضافة DDC وLCC للكتب التي لا تحتوي عليها من خلال النظر في الإصدارات الأخرى من "العمل".

ما هو مفقود هو جزء التسمية.يحتاج شخص ما إلى إنشاء قالب PDF جيد لذلك.

يحرر سيكون الأمر سهلاً جدًا إذا كان لديك رقم ISBN.لكن التحويل من UPC إلى ISBN ليس سهلاً كما تريد.

وإليك بعض التعليمات البرمجية جافا سكريبت لذلك من http://isbn.nu حيث يتم ذلك في البرنامج النصي

if (indexisbn.indexOf("978") == 0) {
   isbn = isbn.substr(3,9);
   var xsum = 0;
   var add = 0;
   var i = 0;
   for (i = 0; i < 9; i++) {
        add = isbn.substr(i,1);
        xsum += (10 - i) * add;
   }
   xsum %= 11;
   xsum = 11 - xsum;
   if (xsum == 10) { xsum = "X"; }
   if (xsum == 11) { xsum = "0"; }
   isbn += xsum;
}

ومع ذلك، هذا يحول فقط من UPC إلى ISBN بعض من الوقت.

قد ترغب في إلقاء نظرة على صفحة مشروع مسح الباركود, أيضًا - رحلة شخص واحد لمسح الكتب ضوئيًا.

لذلك أنت تعرف عن خدمات الويب الأمازون.ولكن هذا يفترض أن أمازون لديه الكتاب وقد قام بمسحه ضوئيًا في UPC.

يمكنك أيضًا تجربة قاعدة بيانات UPC في http://www.upcdatabase.com/item/{UPC}، ولكن هذا غير مكتمل أيضًا - على الأقل إنه ينمو..

كما أن قاعدة بيانات مكتبة الكونجرس غير مكتملة أيضًا مع UPCs حتى الآن (على الرغم من أنها شاملة جدًا)، ومن الصعب تشغيلها آليًا.

في الوقت الحالي، يبدو أنه سيتعين عليك كتابة هذا بنفسك حتى تتمكن من إجراء بحث عالي المستوى يعرض معلومات بسيطة (ويجرب كل خدمة)

يبدو الأمر وكأنه نوع من العمل الذي يمكن أن يطلبه المرء من شركة برمجيات صغيرة للقيام به نيابةً عنك...

والأهم من ذلك، أن هناك خدمات توفر واجهة لكتالوج ISBN، www.literarymarketplace.com.

على موقع Worldcat.com، يمكنك ذلك إنشاء عنوان URL باستخدام رقم ISBN سينقلك ذلك مباشرة إلى صفحة تفاصيل الكتاب.هذه الصفحة ليست مفيدة جدًا لأنها لا تزال عبارة عن عملية تجريف بتنسيق HTML للحصول على البيانات، ولكن تحتوي على رابط لتنزيل بيانات الكتاب في تنسيقين "قياسيين".

على سبيل المثال، كتابهم التجريبي: http://www.worldcat.org/isbn/9780060817084يحتوي على رابط تنزيل تنسيق "EndNote". http://www.worldcat.org/oclc/123348009?page=endnote&client=worldcat.org-detailed_record, ويمكنك جمع البيانات من هذا الملف بسهولة بالغة.يتم ربط ذلك من رقم OCLC الخاص بهم، وليس رقم ISBN، ولكن عملية تحويل ذلك ليست صعبة، وقد يكون لديهم واجهة جيدة للقيام بذلك.

تستخدم زوجتي أمينة المكتبة http://www.worldcat.org/, ، لكنهم يغلقون رقم ISBN.إذا كان بإمكانك مسح ذلك ضوئيًا، فأنت ذهبي.بالنظر إلى بعض الكتب، يبدو أن UPC هو نفسه أو مرتبط برقم ISBN.

أوه، هؤلاء الرجال لديك وظيفة للقيام بالتحويل من UPC إلى ISBN.

باستخدام موقع الويب شيء المكتبة, ، يمكنك مسح الرموز الشريطية الخاصة بك (الرمز الشريطي بأكمله، وليس رقم ISBN فقط - إذا كان لديك "إسفين" للمسح الضوئي، فأنت محظوظ) وإنشاء مكتبتك.(إنها شبكة اجتماعية ممتازة - فكر في StackOverflow لعشاق الكتب.)

وبعد ذلك، باستخدام قسم الأدوات، يمكنك تصدير مكتبتك.الآن لديك ملف نصي لاستيراده/تحليله ويمكنك إنشاء تصنيفاتك وكتالوج البطاقات وما إلى ذلك.

أخشى أن المشكلة هي الوصول إلى قاعدة البيانات.تدفع الشركات مقابل تعيين UPC وبالتالي لا يمكن الوصول إلى قاعدة البيانات مجانًا.ال قاعدة بيانات UPC الموقع الذي ذكره فيليب هو البداية، كما هو UPCData.info, ، ولكن تم إدخالها بواسطة المستخدم - مما يعني أنها غير كاملة وربما غير دقيقة.

يمكنك دائمًا إدخال UPC إلى Google والحصول على نتيجة، ولكن هذا ليس آليًا تمامًا.لكنها تفعل ذلك بشكل صحيح في معظم الأوقات.

اعتقدت أنني تذكرت قيام جون أوديل بشيء كهذا (على سبيل المثال، انظر الى هذا)، ولكنه كان يعتمد على رقم ISBN بحتًا.

يبدو أنك عثرت على مشروع جديد ليعمل عليه شخص ما!

إذا كنت ترغب في استخدام أمازون، فيمكنك تنفيذ ذلك بسهولة باستخدام لينك إلى أمازون.

من خلال العمل في عالم المكتبات، نقوم ببساطة بالاتصال ببطاقة LMS في الرمز الشريطي وستأتي البيانات بسرعة.أعتقد أن هناك عددًا من موفري خدمات LMS المجانية - Google لـ "lms مفتوحة المصدر".

ملحوظة:ربما يعمل هذا خارج ISBN ...

يمكنك العثور على أداة بحث رقم ISBN المطبقة بواسطة PHP على داوسون التفاعلية.

كثيرا ما أوصي باستخدام واجهة برمجة التطبيقات التابعة لمنتج أمازون (تحقق من ذلك هنا https://affiliate-program.amazon.com)، ولكن هناك بعض الخيارات الأخرى المتاحة أيضًا.

إذا كنت تريد ضمان دقة البيانات، يمكنك اللجوء إلى الحل المدفوع.GS1 هي المنظمة التي تصدر رموز UPC، لذا يجب أن تكون معلوماتها دقيقة دائمًا (https://www.gs1us.org/tools/gs1-company-database-gepir).

هناك أيضًا عدد من قواعد بيانات الطرف الثالث التي تحتوي على معلومات ذات صلة مثل https://www.upccodesearch.com/ أو https://www.upcdatabase.com/ .

لا يوجد شيء أفضل من الإجابة بعد مرور ما يقرب من 5 سنوات، ولكن إليك ما يساوي بضعة بنسات لامعة.

أقوم حاليًا ببناء شيء من شأنه أن يؤدي المهمة بشكل جيد ... https://blinked.in - ما أصبح سريعًا أكبر قاعدة بيانات للرموز الشريطية UPC / EAN13 (لقد أضفنا أكثر من 7 ملايين رمز شريطي في الأسبوع الماضي وحده)، بينما لا نزال في مرحلة التطوير الأولية، فإننا نقدم واجهة برمجة تطبيقات واضحة جدًا ومنخفضة التكلفة توفير هذا النوع من الوصول إلى البيانات فقط.

لقد بدأنا عملية التطوير منذ بضعة أشهر فقط، ولكن لدينا بالفعل نظام أساسي مستقر على الويب، وقاعدة بيانات سريعة التوسع ورغبة في إبقاء الأمور بسيطة.

آمل أن يساعدك هذا، أو أي قارئ مستقبلي، بطريقة ما.

محدث

واجهة برمجة التطبيقات الخاصة بنا متاحة الآن - https://blinked.in/api - وقد قمنا بإجراء 100 مكالمة مجانية يوميًا، ويمكنك الحصول على رصيد من مساعدتنا في اكتشاف رموز شريطية جديدة - https://blinked.in/bandwidthaccount

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top