[三流君] −−> [VBAで楽しく] −−> [バックナンバー一覧]
−−> No.150 Webクエリで書籍の売れ筋データを抜き取る

Webクエリで書籍の売れ筋データを抜き取る

メルマガ発行内容

<Webクエリで書籍の売れ筋データを抜き取る>

どうも、三流プログラマーのKen3です。 今回は、私的なことなのですが、 Webから売れ筋の書籍データを抜き出して、販売用のHPを作成する。 そんな手助けツールを作ってみたいと思います。 http://www.ken3.org/p/a/office-037.lzh に、 今回使用した、テストプログラム(Excel2002版)が圧縮されてます。 動かしてテストしてみてください。

/* * 1. 今日の狙い・・・ */

本をいっぱい売って、儲けてやる・・・そんな夢を追ってみます。 本を売るには・・売れている本を皆さんに紹介して、売ろう。 そんな安易な考えで行ってみたいと思います。

/* * 2.まず、コンピュータ書籍のランキングを見る */

コンピュータの専門書籍のランキングページをまず探します。 http://www.cbook24.com/ から http://www.cbook24.com/pubinclude/salesrank/salesrank_main.asp に、売れ筋のコンピュータ関係の本が載ってます。 このデータをExcelに取り込みたいと思います。 方法として、簡単なのが、Webクエリーがあります。 メニューからデータ・外部データの取り込み・新しいWebクエリを選択します。 ↑新しいWebクエリを作成する アドレスを入力して、移動ボタンを押します。 ↑目的のページへ移動する 次は、取り込む範囲を選択して、取り込みボタンを押します。 ↑目的のテーブルを選択する。 取り込みボタンを押すと、取り込み位置を聞いてきます。 ここでは、左上のa1を選択しました。 ↑目的のテーブルを選択する。 無事にデータを取り込むことが出来ました。 A列 B列 C列 D列 E列 F列 順位 書名 出版社名(略称) 価格 ISBN 発売日 1 CPUの創りかた 毎コミ 2800 4-8399-0986-5 2003/9/30 2 速効!図解 ホームページ 1280 4-8399-0997-0 2003/3/13 3 平成15年度版 CAD利用技 3333 4-87193-916-2 2003/2/28 4 写真・イラスト入りはが 1280 4-7980-0455-3 2003/1/30 と、簡単に読み込むことが出来ました。

/* * 3.このデータを使用して、販売ページを作成する */

さてと、これを紹介するだけでは、お金になりません。 自分のHPから申し込まれたよ、、などの情報を付けないと。 バナー広告は、各会社によって違いますが、 バリューコマース社の楽天ブックを使用してみます。 ( 作成方法のページ http://books.rakuten.co.jp/afvc/afinfo/page05.html ) 必要なのは、パターン的に、自分のIDなどと本を識別するIDです。 私のIDは、バリューコマース社だと、sid=38866&pid=871611930 で、本の識別は通常、ISBNコードなので、 下記の本を紹介したい場合は、 1 CPUの創りかた 毎コミ 2800 4-8399-0986-5 2003/9/30 のISBNコードは、4-8399-0986-5なので、 http://books.rakuten.co.jp/afvc/r.jsp?sid=38866&pid=871611930&i=4839909865 と、作ることが出来ます。 これだと、何がなんだかわからないので、 本のタイトルとリンクする下記のHTMLを作成します。 <html> <body> <A HREF="http://books.rakuten.co.jp/afvc/r.jsp?sid=38866&pid=871611930&i=4839909865"> CPUの創りかた </a><br> <A HREF="http://books.rakuten.co.jp/afvc/r.jsp?sid=38866&pid=871611930&i=4839909970"> 速効!図解 ホームページ・ビルダー7 </a><br> </body> </html> なんて感じの、タイトルとリンクを作成します。 このHTMLを作成するデータとして必要なのは A列 B列 C列 D列 E列 F列 順位 書名 出版社名(略称) 価格 ISBN 発売日 1 CPUの創りかた 毎コミ 2800 4-8399-0986-5 2003/9/30 2 速効!図解 ホームページ 1280 4-8399-0997-0 2003/3/13 B列のタイトルとE列のISBN番号です。 まずは、テキストファイルを作成するテストを作ります。
Sub test_filemake()
    'ファイルの作成テストを行う

    Dim nFNO As Integer
    Dim strFNAME As String 'ファイル名
    
    'ファイル名を作成する、ブックの位置+test.html
    strFNAME = ThisWorkbook.Path & "\test.html"
    
    nFNO = FreeFile  '空いているファイル番号をもらう
    Open strFNAME For Output As #nFNO '新規にファイルをオープン
    
    Print #nFNO, "<html><head><title>TEST</title></head>"
    Print #nFNO, "<body>"
    
    Print #nFNO, "<h1>書籍販売ページのテスト</h1>"

    Print #nFNO, "</body>"
    Print #nFNO, "</html>"
    Close #nFNO

    MsgBox strFNAME & "に書き込みました"

End Sub
普通に、ファイルをオープンして、HTMLファイルを作成してみました。 あとは、ループでリンクのデータを作成したいので、
Sub test_filemake()
    'ファイルの作成テストを行う

    Dim nFNO As Integer
    Dim strFNAME As String  'ファイル名
    Dim nYLINE   As Integer '行番号

    'ファイル名を作成する、ブックの位置+test.html
    strFNAME = ThisWorkbook.Path & "\test.html"
    
    nFNO = FreeFile  '空いているファイル番号をもらう
    Open strFNAME For Output As #nFNO '新規にファイルをオープン
    
    Print #nFNO, "<html><head><title>TEST</title></head>"
    Print #nFNO, "<body>"
    
    Print #nFNO, "<h1>書籍販売ページのテスト</h1>"

    'データシートを選択する
    Sheets("DATA").Select

    'ループで書籍データを作成する
    For nYLINE = 2 To 31
        '書籍のリンクデータを作成する
        Print #nFNO, "<A HREF='http://books.rakuten.co.jp/afvc/r.jsp";
        Print #nFNO, "?sid=38866&pid=871611930";
        '-を除いたISBN番号を書き込む(Replaceで取り除く)
        Print #nFNO, "&i=" & Replace(Cells(nYLINE, "E"), "-", "");
        Print #nFNO, "'>"
        'タイトルを書き込む
        Print #nFNO, Cells(nYLINE, "B")
        'タグを閉める
        Print #nFNO, "</A><br>"
    Next nYLINE

    Print #nFNO, "</body>"
    Print #nFNO, "</html>"
    Close #nFNO

    MsgBox strFNAME & "に書き込みました"

    'メニューシートに戻る
    Sheets("Menu").Select

End Sub
ループで回して、Printステートメントで単純に書き込みました。 あとは、Webクエリの更新作業をマクロ記録して、
Sub DATA_Refresh()
    
    Sheets("DATA").Select
    Range("A2").Select
    
    'Webクエリのデータを更新する
    Selection.QueryTable.Refresh BackgroundQuery:=False

    MsgBox "更新終了、データを確認してください"
    Sheets("MENU").Select

End Sub
と、 ランキングが更新されたら、シートも更新するように作成しました。

/* * 3.終わりの挨拶 */

今回は、Webクエリを使用して、Webからデータを抜き出し、 そのデータを使用して、新たなデータを作成してみました。 コンピュータの書籍ページでしたが、 いろいろなランキングを抜き出して、 売れ筋ランキングの販売ページを作成できると思います。 こんな方法もあるってことで、何か読者の心に残れば、うれしいです。 *私の独り言をうまく消化してくださいね。 偉そうな感じ悪い人になりかけてる不親切なKen3でした。 ~~~~~~~(↑オイオイ、また攻撃食らうぞ(笑))

フィードバック

VBA系の→[掲示板]←を覗く、質問を書き込む

評価・感想

No.150を読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る場合は下記に気軽に書いてください
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります

ページフッター(リンクや広告など)


[三流君(TOP ken3.org へ戻る)]
-- [VBA系TOPへ]
---- [VBA系バックナンバー目次へ移動]
------ [VBAでIEを操作 CreateObject("InternetExplorer.application")]・・・実は当店一番人気、VBAでIEを操作するサンプルです
------ [VBAでOutlookの操作 CreateObject("Outlook.Application")]・・・Outlookを使い、メール関係の処理です
------ [Access から Excel 連携 CreateObject("Excel.Application")]・・・人気のAccessからExcelへデータ書き出しなどです
------ [AccessのUserForm/サブフォームを操作]・・・アクセスでフォームを使ったサンプルです
------ [Accessのレポートを操作]・・・レポートを操作してみました
------ [Access クエリー関係やその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です
------ [Excel UserForm(ユーザーフォーム)を操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
------ [ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
------ [Excel関係 関数、その他]・・・その他Excel関係です
------ [VBAでテキストファイル(*.txt,*.html,*.csv)の操作]・・・テキストファイルを使ったサンプルです
------ [VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます


広告
-- [通販系の売れ筋広告へ] ←主に楽天やAmazonのランキングです
blog
-- [三流君の作業日記] ← 日々の作業を少々
-- [通販あしあと] ← 通販ページの足跡を一覧で羅列

情報を探す

情報を探すならGoogleかな?

↓Web全体、サポート情報(support.microsoft.com)や三流君VBA(ken3.org)から検索する
Google
Web www.ken3.org
www.microsoft.com support.microsoft.com

あとは、項目別にMSでお勉強かな?
◆ マイクロソフト サイトの歩き方
◇ How-To インデックス
◇ FAQ インデックス
◇ スキルレベル別おすすめコンテンツ
◇ テクノロジ マップ
◇ テーマ別技術資料一覧

書籍の購入

Webだけじゃさすがに勉強しきれないので、プログラミング関係の書籍も読んでみては??

コンピュータ書籍の発送がハヤイ専門店

コンピュータの本・専門店
種類が豊富で探し易いです。※在庫ありが48時間以内発送が急ぎで資料や書籍がほしい時、とても助かります。
お奨め本の目次を見るだけでも勉強になったり

amazon.co.jpでキーワード別チェック

下記、私が設定したキーワードですが、こんな感じで資料や書籍を探ってみては?
[VBA全体を把握する] -- やはり全体をさらっと見たいですよね。
[SQL関連でDB力UP] -- システムはデータベース設計が重要
[ADO接続を探る] -- VBAなのでADO接続を押さえておく
[Windows APIを探る] -- さらにAPIになて知ってれば強力だ!
[.NETを探る] -- と言っても時代は.NETに流れてるし
プログラミング以外でも知りたいことは多くって、
[人間関係] -- で、客先・上司、まわりに気を使い。
[プログラマーの自己啓発] -- プログラムだけじゃなくいろいろと向上したいよ
[コーチング・育成] -- 先輩になったら後輩(部下)の面倒をみてね。
そんなこんなでプログラマーっていろいろと大変なんだってば・・・