Pythonでバーコード読み込み~JANコードASINコード変換~

このサイトはアフィリエイト広告を含みます
IT・ブログ

開発してみたシステム

Teraの小型バーコードスキャナーを購入したので、このスキャナーを利用したシステムの開発したいと思います。

具体的には、日本の商品コードであるJANコードをAmazonの管理コードであるASINコードに自動で変換するシステムを作ってみます。

普段私たちが購入した商品についているバーコードは、JANコードと呼ばれる日本国内の商品管理コードです。

一方で、Amazonも商品の管理コードを独自に持っており、これをASINコードと呼びます。

私は、Amazonのヘビーユーザーなので、JANコードをASINコードに変換してくれるシステムを作ってみました。(興味本位です(笑))

下記はデモ動画です。

開発の流れは、下のような感じです!

  1. バーコードをスキャン
  2. Pythonで読み込み
  3. Seleniumでブラウザ検索変換サイトを利用してJANコードをASINコードに変換)

バーコードをスキャン

バーコードのスキャンには、Teraの小型バーコードスキャナーを利用しています。

こちらの製品については、別の記事で紹介しているので、よければご覧ください!

【レビュー】Tera 小型レーザーバーコードスキャナー
Tera 小型バーコードスキャナー趣味でバーコードスキャナーを使用したシステムの開発がしたいなぁ~と思っていたので、Teraの小型バーコードスキャナーを購入してみました!サイズは、8cm×4cm×1cm で、とても小さいです!このバーコード...

Pythonで読み込み

Teraのバーコードスキャナーは、USB BluetoothでPCと通信することができます。

また、入力はキーボードと同じ扱いになるので、Pythonの標準入力を使用してバーコードの情報を読み込むことができます。

以下、Pythonのコードです。

# バーコード読み込み(標準入力)
JAN_code = input().strip()

これでJAN_codeにバーコード情報を格納できます。

ただし、通常の設定では、Enterキーを押さないと標準入力が閉じません。

Teraの小型バーコードスキャナーは、サフィックスの設定でEnterキーを追加できます。

設定方法は、別記事で紹介しているので、そちらをご覧ください。

Selenium ブラウザで検索

Pythonでは、クローリング(プログラムによるブラウザ検索)用のライブラリとして、Sleniumライブラリが使用できます。

今回は、JANコードとASINコードの変換をしてくれる下記サイトをクローリングすることによりJANコードとASINコードを自動的に変換しています。

【無料】JANコードASIN相互変換ツール

詳しいクローリングの仕方は、下記サイトで解説されているので、興味のある方は参照してみてください。

図解!PythonでSeleniumを使ったスクレイピングを徹底解説!(インストール・使い方・Chrome)
Seleniumとは Seleniumとは、ブラウザを自動的に操作するライブラリです。主にWEBアプリケーションのテストやWEBスクレイピングに利用されます。   主にWEBスクレイピングで

Python のコードは下記のとおりです。

# seleniumブラウザ検索用
from selenium import webdriver


# バーコード読み込み(標準入力)
JAN_code = input().strip()

# Chromeを操作
driver = webdriver.Chrome(executable_path="C:\\Program Files\\chromedriver_win32\\chromedriver.exe")

# JAN>ASINコード変換サイトを検索
driver.get('http://creepfablic.site/tools/')
search_code = driver.find_element_by_name("CODE")

# JANコードを入力
search_code.send_keys(JAN_code)

# 変換ボタンをクリック
convert_btn = driver.find_element_by_class_name("btn")
convert_btn.click()

#ASINコード読み取り
ASIN_code = driver.find_elements_by_class_name("centered")
ASIN_code = ASIN_code[1].text
ss = ASIN_code.find(':') + 1
ee = ASIN_code.find('Amazon商品情報') - 2 + 1
ASIN_code = ASIN_code[ss:ee]

# ウィンドウを閉じる
driver.quit()

# ASINコードを出力
print(ASIN_code)

seleniumの注意点

Seleniumを起動させるには、適切なwebドライバーが必要です。

Google chromeをお使いの方は、下記サイトからwebドライバーをダウンロードし、exeファイルまでのパスを記載してください。

Downloads  |  ChromeDriver  |  Chrome for Developers

パスはプログラムの黄色下線箇所です。

# Chromeを操作
driver = webdriver.Chrome(executable_path="C:\\Program Files\\chromedriver_win32\\chromedriver.exe")

ドライバーはchromeのバージョンと対応したものでないと動かなくなるため、注意してください。

chromeのバージョンは、ブラウザで

ヘルプ>Google chromeについて

と進むことで確認できます。

まとめ

いかがだったでしょうか。PythonとTeraのバーコードスキャナーを使ってJANコードとASINコードを自動で変換してくれるシステムを作ってみました。

何かの業務効率化になれば、幸いです。

コメント

タイトルとURLをコピーしました