Startup Data scientist Blog

データ分析系のテック情報を発信します

DMMでAPIによりクリスマスギフトになりそうな商品情報を取得するpythonコード

DMMが提供している商品情報API version3.0を活用して商品情報を取得するpythonスクリプトです。


import requests # DMM APIのエンドポイント API_ENDPOINT = 'https://api.dmm.com/affiliate/v3/ItemList/' # あなたのAPI IDとアフィリエイトID API_ID = '' AFFILIATE_ID = '' keywords = ['ギフト'] #検索したいキーワード # APIリクエストのパラメータを設定 params = { 'api_id': API_ID, 'affiliate_id': AFFILIATE_ID, 'site': 'DMM.com', 'service': 'digital', # フロアAPIから取得 'sort': 'match', # ソート順(rank,match or date) 'hits': 15, # 取得する商品数 'offset': 1, # 取得する商品の開始位置 'keyword': keywords, # キーワードをカンマ区切りに変換 'output': 'json' # レスポンスのフォーマットを指定 } try: response = requests.get(API_ENDPOINT, params=params) response.raise_for_status() # HTTPエラーの検出 data = response.json() # レスポンスをJSON形式に変換 # API固有のエラーチェック if 'result' not in data or 'items' not in data['result']: raise Exception("APIレスポンスにエラーがあります。") # 取得したデータを表示(商品名と価格など) for item in data['result']['items']: title = item.get('title', '不明') price = item.get('prices', {}).get('price', '不明') affiliate_url = item.get('affiliateURL', 'URL不明') print(f"{title}, 価格: {price}, : {affiliate_url}") except requests.exceptions.RequestException as e: print(f"リクエストエラー: {e}") except Exception as e: print(f"予期しないエラー: {e}")

Pythonanywhereでpythonスクリプトをスケジュール通りに実行する設定方法

                             PythonAnywhere | LinkedIn

1. PythonAnywhereにログイン

PythonAnywhere にログインしてください。

2. スケジュールタスクのページに移動

  • ログイン後、画面の右上にあるメニューから「Tasks」を選択します。
  • 「Tasks」ページが表示されるので、「Scheduled tasks」タブをクリックします。

3. タスクの追加

  • 「Scheduled tasks」ページの下部にある「Add a new scheduled task」ボタンをクリックします。

4. タスクの設定

以下の項目を入力してタスクを設定します:

  • Commandpython3 /home/your_username/main.py

    • your_usernameの部分をPythonAnywhereのユーザー名に置き換えてください。ファイルの保存場所がデフォルトである場合、/home/your_username/main.py があるはずです。
    • Python 3環境で実行するため、python3 と指定します。
  • Time:実行したい時間をUTCで設定します。

    • 例えば「09:00」に設定すると、毎日午前9時にタスクが実行されます。
    • 時間は24時間形式で指定します。
  • IntervalDaily を選択します。

    • これにより、タスクが1日に1度、指定した時間に自動的に実行されます。
  • Optional Description(オプション):

    • 必要であればタスクの説明を入力します。たとえば、「Rakuten APIから情報取得してTwitterにツイート」と設定するとわかりやすいです。

Python 3.13で「No module named 'imghdr'」エラーをTweepyで解決する方法

python 3.13以降では'imghdr'は非推奨となっています。

しかし、Tweepyを利用する場合は、imghdrをインストールすることが求められます。

 

エラー内容

ERROR: Could not find a version that satisfies the requirement imghdr (from versions: none)

ERROR: No matching distribution found for imghdr

 

解決策

pip install standard-imghdr

 

オープンソースプラットフォーム「HiveSpaceAI/HiveSpace」を利用したマルウェア感染

ある日、私はオープンソースプラットフォーム「HiveSpaceAI/HiveSpace」をダウンロードしようとしました。しかし、ダウンロード過程でウイルスが検出されました。この経験から学んだことを、皆さんと共有したいと思います。

 

 

HIVEとは

オープンソースのプラットフォームで、リアルタイムでのコラボレーションとつながりをサポートすることを目的としています。GitHub上で開発が進められています。

hive-space.app

 

経緯

Xから企業の人事を名乗る人からDMが送られてきたのが始まりです。

相手は有名Web3プロジェクトの人事であり、開発者を募集しているとのことでした。

私は、Xのフォロワーが5000人ほどと多かったことや他のアカウントとも活発にやり取りを行っており、本当のアカウントだと信じてしまいました。

しかし、相手は人事になりすましたハッカーであり、ウェブブラウザのウォレットを狙ったのだと思います。

企業の人事になりしました者は、「私の国ではGoogle meetやZoomが使えないのでHiveSpaceをダウンロードしてください」言われ、招待コードが送られてきました。

指示通りにダウンロードすると、マルウェアが仕込まれていることがわかり、トロイの木馬ウイルスが検出されました。

 

検出内容:Trojan:Win64/Lazy.GMD!MTB

 

セキュリティツールであるMicrosoft Defenderによりウイルスは検出および削除され、ログもチェックし流出はなかったと安堵しましたが、信頼できるソースからダウンロードすべきだったと反省しました。Web3やクリプト界隈には電子ウォレットを狙ったハッカーが多く、まだまだ注意が必要です。

ウイルスファイルダウンロード後は、残存ファイルやシステム変更などが残る可能性があり、 マルウェア対策を再定義し 、ハードウェア全体のスキャンを実行するなど対策が必要があり、さらに初期化など対応が必要な場合もあるかと思います。

 

オープンソースのリスク

オープンソースのプロジェクトは誰でもアクセスでき、コミュニティによって維持管理されています。そのため、悪意のあるコードが混入するリスクも当然存在します。

 

  • 信頼できるソースからダウンロードする: オープンソースプロジェクトは公式リポジトリや信頼できる開発者から入手することが重要です。招待コードなどにも注意しましょう。これにより、リスクを最小限に抑えることができます。

 

  • SIEMやセキュリティツールを使用する: ダウンロードするコードの安全性を確認やログの解析などをおこないましょう。

 

無料でZohoから独自のカスタムメールアドレスを作成する方法

Zoho Mailは、独自ドメインのメールアドレスを無料で作成できるサービスとして人気があります。5つのメールアドレスまで無料で利用できるため、個人や小規模なビジネスで手軽に始めることができます。まず、独自ドメインを購入する必要があります。

go.zoho.com

 

 

 

作成手順

1.ドメインの購入

お名前.comなどのドメインホスティングサービスでドメインを購入します。

 

 

2.Zoho Mailアカウントの作成:

Zoho Mailの公式サイトにアクセスし、無料でアカウントを作成します。

go.zoho.com

 

 

3.ドメインの追加:

作成したアカウントにログイン後、ドメインを追加します。

既に独自ドメインをお持ちの場合は、そのドメイン名を入力します。

ドメインをまだお持ちでない場合は、Zohoの提携ドメインレジストラから購入することもできます。

 

Zoho Meetingアカウントの[設定]→[組織管理]→[独自ドメイン]に移動します。管理画面のdashboardからドメインをクリックし、購入したドメインを追加します。

 

 

4.DNSレコード設定

Zoho Mailから提供されるDNSレコードを、ドメインレジストラで設定します。

推奨にはTXTの利用と記載されていますが、CNAMEレコードを選択します。

 

お名前.comにアクセスし、DNSレコード設定を利用するをクリックします。

 

この設定をお名前.comのDNSレコードに追加します。DNSレコード設定にアクセスし、以下の設定を入力します。この作業によりドメインZoho Mailのメールサーバーに結び付けられます。

Host: Zohoからコピーしてきたものを

Value: Zohoからコピーしてきたものを張り付ける。

また、ZohoのTXTレコードの認証には時間がかかる場合があります。

 

 

5. Zoho MXレコードの設定

Zoho MailのMXレコードを、あなたのドメインレジストラで設定します。

この設定によって、あなたのドメイン宛てのメールがZoho Mailに転送されるようになります。

先ほどと同様にZohoの指定の数値をお名前.comのレコードに追加していきます。

 

MX, SPF, DKIMの関連付けを行っていきます。完了後にVerify all refordsを押します。認証には時間がかかる場合があります。

 

お名前.comで指定のレコード全てを追加します。

 

 

追加後に手続きを完了させます。

 

ドメインの所有権の認証が完了すると、Zohoで認証完了画面が表示されます。

 

 

6. メールボックスの作成:

DNS設定が完了すると、Zoho Mailの管理画面でメールボックスを作成できます。

作成したメールボックスに、あなたの好きなユーザー名を設定し、カスタムメールアドレスを作成します。

 

これで無料でカスタムドメインのメールアドレスの作成が可能です。

 

www.zoho.com

 

www.zoho.com

2024年度版:最新版 お名前.comの「ドメインの自動更新解除方法」

お名前.comの自動更新設定をそのままにして不要なドメインが更新されてしまったので、どのようにして「ドメインの自動更新」を解除するのかブログに書きたいと思います。

 

ドメイン購入後に、使わないのであれば自動更新をオフにしておくことをお勧めします。でなければ知らず知らずのうちに自動でドメインが更新されており、口座から引き落とされてしまいます。

※お名前.comで購入したドメインは自動更新になっているので注意が必要です。

 

目次

 

 

1. Topページにアクセス

まず、お名前.comのホームにアクセスします。

2.ホーム上のドメイン機能一覧をクリック

 

3.カテゴリから探すのドメイン機能一覧から「ドメインの自動更新」をクリック

 

4.ドメイン自動更新設定

自動更新を止めたいドメインをチェックします。チェック後に確認画面へ進みます。

 

5.確認画面

確認画面が表示されるので、内容を確認し、申し込みボタンを押します。

これで自動更新の設定が解除できました。お名前.comでドメインを購入後、使わないことが分かっているのであれば自動更新設定を解除しておくことをお勧めします。

私は気が付いたら請求されており、また1年契約する羽目になりました。

 

お名前.comで購入したドメインをGoogle siteに登録する方法[2023/10/05最新版]

お名前.comで購入したドメインGoogle siteに登録する方法です。お名前.comで購入したドメインGoogle siteで利用可能です。

Google siteは無料でWebsiteを作ることが出来るので便利です。

px.a8.net

 

2023年10月05日最新版

 

注意:ドメインの所有権を証明する前に、Google siteでサイトを作成または準備しておく必要があります。また、ドメインDNSレコードを変更する前に、ドメインの登録期間が残っていることを確認してください。

 

 

目次

 

 

 

手順 1: Google siteでサイトを作成または準備する

Google siteを開きます。ウェブサイトを構築 をクリックし、新しいサイトを開始 をクリックします。サイトを作成または準備するには、Google サイトの手順に従います。
サイトの準備ができたら、公開 をクリックします。

sites.google.com

 

Websiteが出来たらドメインの登録設定を行います。

右上の設定ボタンを押し、カスタムドメイン設定を行います。


設定したいドメイン名を入力します。

「所有権の証明が済んでいない」と表示されるので所有権の証明を行います。

 

Google Search Consoleにアクセスし、ドメインを入力します。

 

DNS レコードでのドメイン所有権の確認

DNS レコードでのドメイン所有権の確認を行います。DNS設定をコピーします。

 

手順 2: お名前.comでドメインDNSレコードを変更する

お名前.comにログインします。
ドメイン管理画面を開きます。
DNSレコード 設定をクリックします。

ネームサーバーの設定からDNS設定画面に移動します。ホームページに設定したいドメインを選択肢し、次へを押します。

 


DNS設定

DNSレコード設定を利用するを選択します


DNSレコード設定

入力画面に移動したら、下の入力項目に入力を行います。

ホスト名: 

TYPE: TXT

TTL: 3600

VALUE: 先ほど、Google Search Consoleで取得したDNS設定を入力します

優先: 

状態: 有効

 

 

上記の値を入力し、追加ボタンを押し、確認画面へ進み登録します。

 

 

Google Search Console画面に戻り、確認ボタンを押します。

 

所有権を証明しました

確認ボタンを押すと所有権を証明しましたと表示されます。

 

所有権を証明できませんと表示される場合

認証されるまでに時間がかかります。数時間ほど待ってから再度登録を行いましょう。

 

手順 3: Google Search Consoleドメインを登録する

Google サイトを開きます。
ドメインの購入に使用した Google アカウントでログインします。

Google site画面に戻り、カスタムドメインの設定へと移ります。歯車の設定ボタンを押し、カスタムドメインの設定を押します。

 

Google site

サードパーティドメイン登録事業者への接続を行います。次へボタンを押すと、下の画面が表示されます。CNAMEの値と宛先をコピーし、次へボタンを押すことでカスタムドメインが設定されます。

 

 

お名前.comでCNAME設定を行う

お名前.comへアクセスします。

先ほどと同じようにDNSレコード設定画面から、TYPEをCNAMEに設定し、必要事項を入力していきます。

ホスト名: www 

TYPE: CNAME

TTL: 3600

VALUE: ghs.googlehosted.com

優先: 

状態: 有効

 

 

上の項目を入力して設定を完了させます。

DNSレコード設定が完了しました。

これでGoogle siteにカスタムドメインを設定することが出来ました。

 

手順 4: Google siteを公開する

ドメインの公開 をクリックします。
ドメインの所有権を証明すると、ドメインGoogle siteに登録され、ドメイン名でサイトにアクセスできるようになります。

反映まで時間はかかりますが、ドメインにアクセスすると作成したWebsiteにアクセスすることが出来ます。

Rakuten Developers API Test Formから商品情報をjsonで取得する方法

Rakuten Developers API Test Formから商品情報をjsonで取得する方法

Rakuten APIを活用したアプリの開発時などに役に立つAPI

取得にはRakuten Developersアカウントを作成する必要があり、申請後に利用可能となっています。

 

1.下記テストフォームにアクセスする。

webservice.rakuten.co.jp

 

2. フォームで取得したい商品情報のkeywordを設定

今回はkeyword = 水で設定しました。

 

3. Send Getを押す

キーワードにマッチする商品情報が取得できました。

 

簡単にAPI Test Formから商品情報を取得することが出来ました。

楽天APIを利用するにはDevelopersアカウントを作成しアプリIDを取得する必要があります。申請やAPIの取得は審査などはなくすぐに獲得することが出来ます。

Amazon Product Advertising API(PA-API)から商品情報を取得するサンプルコード

Amazon Product Advertising API(商品情報API)の活用方法

アソシエイト・プログラムの参加者が無料で利用可能なAPIサービスからjsonで商品情報を取得したいと思います。

Amazon | 本, ファッション, 家電から食品まで | アマゾン

 

実行環境:

Windows 10

Vscode

このAPIは実行環境によりエラーの発生頻度が変わってくるそうです。

 

pip install

pip install amazon-paapi5

 

sample.py: Sample code- python

from amazon.paapi import AmazonAPI

KEY = "Your API key"
SECRET = "Your secret key"
COUNTRY = "JP"
keyword = "水"

amazon_api = AmazonAPI(KEY, SECRET, TAG, COUNTRY)
searchItems = amazon_api.search_items(item_count = 1, keywords = keyword)
print(searchItems)

 

認証キー情報はAmazonアフリエイトから取得することが可能です。

Amazonアソシエイトの管理ページのメニューバーから ツール > Product Advertising APIからリクエストが可能です。

ACCESS_KEY = "<YOUR API KEY>": 
SECRET_KEY = "<YOUR SECRET KEY>"
ASSOCIATE_ID = "<INPUT YOUR ID>"
COUNTRY = "JP" 取得する国の情報

keyword = "検索したい商品の名前"

 

取得した情報はjson形式で出力されます。

 

追記

Error: (ApiException)
Reason: {"__type":"com.amazon.paapi5#TooManyRequestsException","Errors":[{"Code":"TooManyRequests","Message":"The request was denied due to request throttling. Please verify the number of requests made per second to the Amazon Product Advertising API."}]}

 

上記のエラーが発生するようになってしまいました。

30日間売り上げがないと、APIが利用できなくなるとのことです。

 

webservices.amazon.co.jp

github.com

 

requests_outhlibがインストールされないエラー

Twitte bot開発時にrequests_outhlibがインストールされないエラーが発生。

 

実行コマンド:

pip install requests_outhlib

 

エラー内容:

ERROR: Could not find a version that satisfies the requirement requests_outhlib (from versions: none)
ERROR: No matching distribution found for requests_outhlib

 

実行環境:

Windows 10

python

 

解決策:

pip install requests requests_oauthlib
 

それでもインストールできない場合は、下記をuser権限で実行します。

pip install requests_outhlib --user

今回インストールに成功したコマンド

pip install requests requests_oauthlib
 

requestsコマンドを追加することで無事インストールが出来ました。

requestsとは、HTTP通信用のpythonライブラリです。

また、エラーはインポート文のタイプミスにより発生したものでした。