ゴミ溜め@技術系日常系雑文

主にWeb技術やそのほかつまづいたこととか引っかかって調べたこととかをまとめてます。

はてなダイアリーから引っ越しました。)

価格.comの最安値情報を取得してくるExcelVBAマクロ

久々の更新。

Excel VBA価格.comの最安値情報を取得してくるマクロのメモ書き。

やりたいこと

選択範囲の型番で価格.comの最安値情報を検索し、同じ行の隣のセルに入力したい。

参照設定

以下を有効にする:

クラスモジュール

''
' KakakuComSearchItem
'
' 取得した価格情報を保持しておくためのクラス
'

Public self As HTMLDivElement
Public name As String
Public price As String

Function setItem(element As HTMLDivElement)
    Set self = element
    name = self.getElementsByClassName("itemnameN").item(0).textContent
    price = self.getElementsByClassName("yen").item(0).textContent
    
    ' 価格から余計な文字を取り除く
    Dim regex As New RegExp
    regex.Pattern = "[^0-9]"
    regex.Global = True
    price = regex.Replace(price, "")
End Function

標準モジュール

''
' Module 1
'

' 最安値情報検索URL (%sの部分を実行時に検索語句に置換する)
Const SEARCH_BASE_URL = "http://kakaku.com/search_results/%s"

Sub 価格comの最安値情報取得()
    ' encodeURIComponent関数で検索語句をURLエンコードするためにJSをロード
    Dim js As New ScriptControl
    js.Language = "JScript"
    
    ' 不可視モードでIEを呼び出す
    Dim ie As New InternetExplorer
    ie.Visible = False

    Dim item As New KakakuComSearchItem
    Dim c As Range
    For Each c In Selection
        Set item = searchItem(c.Value, ie, js)
        c.Offset(0, 1).Value = item.name
        c.Offset(0, 2).Value = item.price
    Next

    ' Quitしないとマクロが終了してもIEのプロセスが残り続ける
    ie.Quit
    Set js = Nothing
    Set ie = Nothing
    MsgBox "Finished."
End Sub

Private Function searchItem(word As String, ie As InternetExplorer, js As ScriptControl) As KakakuComSearchItem
    Dim url As String
    url = Replace(SEARCH_BASE_URL, "%s", js.CodeObject.encodeURIComponent(word))
    
    ' 第一引数(url)だけだとGET, 第四引数(body)を含めるとPOSTでリクエストするみたい
    ' sort=priceb&act=Sort の設定が「価格昇順」を意味するっぽい
    ie.navigate url, , , "n=30&l=1&sort=priceb&act=Sort"
    ' 応答あるまで待機
    wait ie
    
    Dim document As HTMLDocument
    Set document = ie.document
    
    Dim item As New KakakuComSearchItem
    If document.getElementsByClassName("item01").Length = 0 Then
        item.name = "該当無し"
        item.price = "該当無し"
    Else
        item.setItem document.getElementsByClassName("item01").item(0)
    End If
    
    Set searchItem = item
End Function

Private Function wait(ie As InternetExplorer)
    Do While ie.Busy = True Or ie.readyState < READYSTATE_COMPLETE
        DoEvents
        sleep 500
    Loop
End Function

Private Function sleep(msec As Long)
    Application.wait [Now()] + msec / 86400000
End Function

以上。

Raspberry Piを入手してからmuninを入れるまで

ひっさびさの更新。まさかの2年ぶり。
自宅のに無線LAN接続のRaspberry Piを置いて、muninで状態を監視したいと思った。

0. 環境等

  • 使用したRaspberry Pi は「Raspberry Pi 2 Model B」。余ってたのを使ったので、別に何でもいい。余談だけど、最近Raspberry Pi Zero注文してそろそろ来るらしい。うきうき。
  • 使用した無線LANアダプタは「PLANEX GW-USNANO2A」。初期設定無しでそのまま使えた。
  • McroSDカードは適当に転がってた8GBのを。

1. Raspberry PiのUSBポートに無線LANアダプタを装着

2. NOOBSダウンロード、すべてのファイルをSDにコピー

https://www.raspberrypi.org/downloads/noobs/

現時点のバージョン等:
Version:2.0.0
Release date:2016-10-05
Download ZIP
SHA-1: 825d273584c0139875901677db7acfe519506991

3. なんか適当にRaspbianのインストール

起動時はCLI(黒画面)を表示するように設定しておく。
以降、ルートユーザはpi、パスワードはraspberry、起動時に自動ログインする設定を前提とする。
変更した場合は、適宜読み替える。
なお、無線LANアダプタは何もしなくても使える状態になっていたので設定は省略。

4. 無線LAN アクセスポイント(AP)が見えるか確認

pi@raspberrypi:~ $ sudo iwlist wlan0 scan|grep ESSID
                    ESSID:"自宅のアクセスポイントのSSID"
                    ESSID:"しらないやつ"

5. 無線LANAPに接続する設定

pi@raspberrypi:~ $ sudo sh -c "wpa_passphrase アクセスポイントのSSID パスワード >> /etc/wpa_supplicant/wpa_supplicant.conf"

6. 以下のような感じで設定された。

pi@raspberrypi:~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="アクセスポイントのSSID"
        #psk="パスワード"
        psk=暗号化されたパスワード
}

※ #psk="パスワード"は不要なので消しても良い

7. 一度再起動して、ネットにつながるか確認

pi@raspberrypi:~ $ sudo reboot

~再起動まで待つ。ifdown/ifupでも問題ないが、念のため。~

pi@raspberrypi:~ $ sudo ping -c 1 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=6.07 ms

--- 192.168.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 6.070/6.070/6.070/0.000 ms

pi@raspberrypi:~ $ sudo ping -c 1 google.com
PING google.com (172.217.25.78) 56(84) bytes of data.
64 bytes from nrt13s50-in-f78.1e100.net (172.217.25.78): icmp_seq=1 ttl=53 time=11.4 ms

--- google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 11.478/11.478/11.478/0.000 ms

8. 固定IP設定

piraspberrypi:~ $ sudo vi /etc/dhcpcd.conf

以下を追記。

interface wlan0
static ip_address=192.168.0.200/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
static domain_search=192.168.0.1

9. 無線LANの再起動と設定確認

pi@raspberrypi:~ $ sudo ifdown wlan0
pi@raspberrypi:~ $ sudo ifup wlan0
pi@raspberrypi:~ $ sudo iwconfig
wlan0     IEEE 802.11bgn  ESSID:"アクセスポイントのSSID"  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency:2.437 GHz  Access Point: XX:XX:XX:XX:XX:XX
          Bit Rate:150 Mb/s   Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:****-****-****-****-****-****-****-****   Security mode:open
          Power Management:off
          Link Quality=100/100  Signal level=71/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

lo        no wireless extensions.

eth0      no wireless extensions.

pi@raspberrypi:~ $ sudo ifconfig
eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
          inet6 addr: fe80::4220:10d8:fc49:c467/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:12617 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12617 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:1450166 (1.3 MiB)  TX bytes:1450166 (1.3 MiB)

wlan0     Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
          inet addr:192.168.0.200  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: 240f:2:591b:1:2deb:432f:d586:9709/64 Scope:Global
          inet6 addr: fe80::8a4a:a14f:df10:32b4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:340 errors:0 dropped:82 overruns:0 frame:0
          TX packets:182 errors:0 dropped:1 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1985600 (1.8 MiB)  TX bytes:2415159 (2.3 MiB)

10. とりあえず更新

pi@raspberrypi:~ $ sudo apt-get update -y
pi@raspberrypi:~ $ sudo apt-get upgrade -y -f

11. apacheとmuninのインストール

pi@raspberrypi:~ $ sudo apt-get install apache2
pi@raspberrypi:~ $ sudo apt-get install munin

※ muninインストール前にapacheが入ってないと、泣きを見ることになる。

12. LAN内の別のPCからウェブページを参照できるか確認

f:id:AyeBee_TY:20161127015120p:plain

13. muninのアクセス設定

pi@raspberrypi:~ $ sudo vi /etc/munin/apache.conf
(書き換え前)
<Directory /var/cache/munin/www>
        Order allow,deny
        Allow from localhost 127.0.0.0/8 ::1
        Options None

(書き換え後)
<Directory /var/cache/munin/www>
        Order allow,deny
        #Allow from localhost 127.0.0.0/8 ::1
        Allow from all
        Require all granted
        Options None

14. muninの設定をapache配下にシンボリックリンクする。

pi@raspberrypi:~ $ sudo ln -s /etc/munin/apache.conf /etc/apache2/sites-enabled/munin.conf

15. 再起動

pi@raspberrypi:~ $ sudo reboot

16. LAN内の別のPCからmuninを参照できるか確認

f:id:AyeBee_TY:20161127015137j:plain

以上。

ConoHa1周年記念イベント in 大雨の秋葉原に行ってきました。レポ。

ええ、行ってきましたよ。ConoHa1周年記念イベント。台風接近に伴う大雨だったけど、なんかもう秋葉に行かなきゃ、という使命感に突き動かされましたよ。

本来の目的は秋月行ってRaspberry Pi用の部品揃えに行ったんだけど、まあそれは別の話。

続きを読む

ConoHa導入して、やったことログ

やったことまとめ。

  1. VPSを追加
  2. ローカルユーザーの作成
  3. FTPユーザーの作成
  4. vsftpdの導入
  5. WordPress初期設定
  6. WordPressのプラグイン追加
  7. 今後やりたいこと

これら方法が適切なのかは、わからない。
ググった情報、勘を頼りにしてるので、セキュリティ的な問題とか有るかもしれない。
もし変なところがあれば、指摘していただければ助かります。

続きを読む

ConoHaはじめました。

あ、リンクはアフィリンクなので、嫌儲な方はこちらのリンクから公式ページに飛んで下さい。

なんかもういろいろ我慢できなくなってConoHa始めてしまった。

さくらのVPSと悩んだんだけど、次の点でConoHaに決めた。

  • スペック構成・値段は大して変わらない
  • このはさんが可愛い、可愛いは正義
  • 1500円分のクーポンがついてるのも魅力

ただしさくらは年払いで割引が効くので、月換算100円くらい安い。
それ以外にも細かい違いはあり、それぞれ一長一短。ここら辺は本人の考え次第だともう。

続きを読む

なんかアンケートサイトに登録してみたんだけど

ページ切り替えができるんだけど、「戻る」ボタンが無くて元の回答に戻れないのが微妙かなあ。

でもシンプルで使いやすいかも。
回答にかかった時間とかも集計できて便利。

無回答で送信したらどうなるのか試そうと思ってやってみたら、回答回数制限かけてるせいでやり直せなくなってしまった・・・。

あ、よかったら回答してくれると喜びます。

続きを読む

ホームページ作りたいけどどんなのがあんの?まとめ

無料でブログプラン、無料でウェブサイトプラン、有料でWordPress使ったウェブサイトプランの3つに別けてみた。
もちろん、他にもレンタルサーバはいっぱい有るので、あくまで一例。
アダルトコンテンツの可否について記載してるのは、絵描きさん等、一部アダルトコンテンツに絡みそうな人を考慮した故。
アダルトコンテンツを含むと、サーバーの心証や、アクセス過多によるサーバー負荷の原因になりやすいので、レンタルサーバーによっては禁止している事が多い。

ただし、イラストの公開等はPixivで行って、ウェブサイトからはリンクにとどめるなど、迂回する方法は有る。

続きを読む