【VBA】Amazonで商品検索
こんにちは
今回はAmazonで商品検索をします。
言葉で言うのは簡単なんですけどね。
Amazonでの商品検索
1.IEを開く
2.Amazonにアクセス
3.欲しい商品名を入力
4.表示された商品のページを開く
すごく・・・簡単です。
これをVBAで表示すると結構なコードになりそうw
ではコードを見ていきましょう
サンプルコード
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub Amazon_search() Dim ie As InternetExplorer Dim textInput As IHTMLElement Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "https://www.amazon.co.jp/" Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE DoEvents Loop Sleep 3000 For Each textInput In ie.document.getElementsByTagName("input") If InStr(textInput.Name, "field-keywords") > 0 Then textInput.Value = "ジャック・ライアン" Exit For End If Next Dim form As HTMLFormElement For Each form In ie.document.getElementsByTagName("input") If InStr(form.Value, "検索") > 0 Then form.Click Exit For End If Next Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE DoEvents Loop Sleep 3000 Dim title As IHTMLElement For Each title In ie.document.getElementsByTagName("A") If InStr(title.innerText, "ジャック・ライアン") > 0 And title.innerText Like "*字幕*" Then title.Click Exit For End If Next End Sub |
1行目:Sleep関数の宣言
2行目:プロシージャの開始
3~4行目:変数宣言
5行目:なし
6行目:ieにInternetExplorer.Applicationを設定
7行目:IEを表示
8行目:Amazonを開く
9行目:なし
10~12行目:読み込みが終わるまで待機
13行目:Sleep関数で3秒待機
14行目:なし
15行目:For Each文でソースコード内の”input”タグの数繰り返す
16行目:検出されたコードでNameが"field-keywords"かどうか
17行目:検索のワードに"ジャック・ライアン"を入れる
18行目:For文を抜ける
19行目:If文を抜ける
20行目:NextでFor文を繰り返す
21行目:なし
22行目:formを変数宣言
23行目:For Each文でソースコード内の”input”タグの数繰り返す
24行目:検出されたコードでValueが"検索"かどうか
25行目:検索ボタンをクリック
26行目:For文を抜ける
27行目:If文を抜ける
28行目:NextでFor文を繰り返す
29行目:なし
30~33行目:ページを開くまで待機
34行目:なし
35行目:変数宣言
36行目:For Each文でソースコード内の”A”タグの数繰り返す
37行目:If文で"ジャック・ライアン"と"字幕"が記載されたリンクかどうか
38行目:リンクをクリック
39行目:For文を抜ける
40行目:If文を抜ける
41行目:NextでFor文を繰り返す
42行目:プロシージャの終了
いやぁ長いw
そして自分がジャック・ライアンにはまっているからという理由でこんなプログラムを作成したという
本当に面白いんですよこの作品は
時間があればぜひ見ていただきたいです。
AmazonPrimeなら無料で観れます!
作成してみて
本を読んである程度IEを使用したプログラムを組んでは見たものの、未だにこの変数宣言でいいの?と思うところは多々ありますね。
特に検索ボタンを押すところなんて
form.submitで最初はやろうとしたんですが、エラーが出てきて何で?となりました。
とりあえず動かさなくてはということでClickを使用しましたが、
この当たりが中級者なんだろうなぁと痛感しました。
リンクをクリックするところは字幕のページをクリックするように設定しています。これは、そのままで開くと吹替え版が表示されるため、andを使用して字幕の方を開けるのではないかと思いやってみました。問題なく開けて安心しました。
内容が長すぎるため今回はこの辺で