プログラミングamazonアソシエイト用の商品ランキングを自動で作成する方法PHPを利用してアマゾンの商品ランキング(アソシエイトID入り)を自動で作成させる方法を解説します。ある簡単ツールではありませんが、100%自分のアソシエイトIDのみのリンクを作成できます。簡単ツールには他人のアソシエイトIDが混じることが多々あります。この記事にたどり着いたということはWordPressやPHPの仕組みをある程度理解しているということを前提にして記事を書いています。分からないところは各自調べるなり聞いたりしてください。紹介するプログラムの概要PHPで目的のページのソースコードを入手する入手したソースコードから必要な部分を抽出、整形する整形したコードをファイルに保存する保存したファイルを通常のページファイルから読み込む1~3をcronにて自動実行させる5.のcronを使った自動実行についてはザックリとだけ解説します。各自のサーバーによって操作の仕方がことなるためです。PHPにてリンク先のソースコードを入手する方法file_get_contents()を使うことでリンク先のソースコードを取得することができます。アマゾンのゲームの売れ筋ランキングのページを例にソースコードを取得してみます。$html;実行すると整形されていないソースコードが表示されたと思います。これを整形していくのですが素の関数だけでは面倒なのでパース用のAPIを使います。Parserこちらよりダウンロードできます。任意の場所に配置します。他のファイルは使いません。APIを利用するときはrequire_once()で読み込みます。先ほどのゲーム売れ筋ランキングのページのランキングに載っている商品のDIV要素だけを取り出してみます。$list;}$html->clear();unset($html);最後の二行はメモリ解放処理です。unset($html);3.file_get_html()引数にURLを渡すとDOMを返してくれます。4.find()引数にセレクタを渡すと指定した要素を返します。このセレクタはjQueryと同じように使えるのが特徴です。今回はclass=”zg_itemRow”を取得しています。(記事作成時点から)ページのソースが変わっていた場合は上手く取得できないので要確認。全てのclass=”zg_itemRow”を取得するためにforeachでループさせています。ここまでの動作を確認できたら次へ進んでください。$context);simple_html_dom.phpの75行目を変更してみてください。Parserの使い方APIの使い方をもう少し解説します。先ほどのDIV要素を取得するコードに追加で書いていきます。DIV要素内のIMGタグだけ取得して表示してみます。$list->find(‘img’,0);find()第二引数に数値を渡しています。これは要素のn番目を指定する方法です。任意のattrを指定attribute、属性値を取得する方法IMG要素のsrc属性の値を取得してみます。$src.'<br>';}$html->clear();unset($html);画像のソースを取得できました。要素の指定と属性の取得方法が分かったので、この記事の7割は解説できたと思います。$a->href;のようにするだけです。アソシエイトIDが有効なリンクを作る方法それぞれのIDXXX-22を取得したリンクと組み合わせて有効なリンクを作るには、まず商品コードを抽出するのが良いと思います。急上昇ワードなど検索結果が表示されるページにIDを付けたい場合は、商品コードを抽出しなくて良いと思います。今回は解説しませんが&tag=あなたのIDのパラメータを付ける方法などがあります。リンクチェッカーを使用して確認するhttps://affiliate.amazon.co.jp/home/tools/linkchecker公式に正しくリンクが作れているかをチェックするツールがあるので、そちらを利用りましょう。整形したURLを必ず確認しましょう。画像とリンクのURLの取得方法は既に紹介したので、あとは有効なリンクへ整形するだけですので煮るなり焼くなり好きにしてください。簡単な例を紹介しておきます。$match);正規表現で商品コードを$matchへ渡しています。つかめている場合は$match[1]に商品コードが入っています。それぞれのページによってhrefの値は変わると思うので調整しましょう。整形したコードをphpファイルに保存する方法file_put_contents()を使います。許可を確認せずにファイルの作成、上書き更新をするので間違えて既存のファイルを消してしまわないように注意しましょう。$output);$filenameにはディレクトリも指定します。細かい使い方はリファレンスを参照。あとは作られたrank.phpを任意のページで読み込ませれば、自作の商品ランキングみたいなものができますね。cronを使い自動で更新する方法サーバーに依存するところが多いので参考にならないかもしれませんが、私の設定を書いておきます。/home/サーバーID/ドメイン/public_html/wp-content/任意の場所/実行する.php/usr/bin/php7.0[スペース]phpを実行するための命令/home/サーバーID/ドメイン/public_html/wp-content/任意の場所/実行する.php青い部分は環境に依存する?オレンジの部分は任意のディレクトリを指定。WordPressではこんな感じだと分かりやすいかなと思いwp-contentに入れました。cronの知識は初学者程度しかないので各自調べてください。require_once()やfile_put_contents()で指定するディレクトリもcronから起動したphpファイルではディレクトリの指定方法が変わる場合もあるので要調整。cronが使えない人はwp_cronやWordPressのアクションにフックして記事を作成したときに任意のphpを実行させたり、管理画面に入ったときに実行させるなどの方法があります。コード整形時には例外処理を入れることをおすすめします。例外が出た場合はfile_put_contents()を行わないようにして、メールで通知させるようにしておけば表示が崩れたりするのを防げるでしょう。終わり今回に参考にしたリンクをまとめておきます。[amazon|WordPress|プログラミング][◀前]amazon「ほしいものリスト」から本名がバレてしまうかも?公開している人は確認しよう。コメントをキャンセルメールアドレスが公開されることはありません。内容をご確認の上、送信してください。URLを含むコメントは承認待ちになります。[amazon|WordPress|プログラミング][◀前]amazon「ほしいものリスト」から本名がバレてしまうかも?公開している人は確認しよう。