[三流君] −−> [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でした。 ~~~~~~~(↑オイオイ、また攻撃食らうぞ(笑))


ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

種類別のリンク や 広告など

気になったジャンル↓を選択してください。

人気記事(来場者が多いTOP3):
[VBAでIE,WebBrowserを操作]・・・VBAでIE,WebBrowserを操作する サンプルです
[Access から Excel 連携 CreateObject("Excel.Application")]・・・AccessからExcelを操作したりデータの書き出しなどです
[VBAでOutlookの操作 CreateObject("Outlook.Application" )]・・・VBAからOutlookを使い、メール関係を処理するサンプルです
↑上記3つみたいなCreateObjectで他のアプリケーションを操作するサンプルが人気です。

Excel関係:
[Excel UserFormを操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
[ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
[Excel関係 関数、その他]・・・その他Excel関係です

Access関係:
[Access UserForm/サブフォーム 操作]・・・アクセスでフォームを使ったサンプルです
[Access レポート操作]・・・レポートを操作してみました
[Access クエリーやその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です

その他:VBAの共通関数やテキストファイルの操作など
[VBAでテキストファイル(TextFile)の操作]・・・普通のテキストファイルを使ったサンプルです
[VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます

開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う]

仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力]

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [VBAやASPのサンプルコード]/ 広告-[通販人気商品の足跡]



[三流君(TOP ken3.org へ戻る)] / [VBA系TOPへ] / [VBA系バックナンバー目次へ移動]