SeleniumBasicでCookieの利用  usage_cookies

リファレンス

 usage_cookieでは、SeleniumBasicで起動したブラウザのCookie情報の取得や登録、削除ができます。Cookie情報をスクレイピングで収集したい時には役立つかと思います。
 今回は、事前に新規ExcelSheetを作成しておきます。シート名は"Cookie"にしておきます。

  • 利用目的は業務効率化です。(テスト自動化ではありません)
  • ブラウザはGoogleChromeが対象です。(EdgeやFirefoxは対象外)
  • 原文のVBAでは現在エラー発生する場合が多いため、修正を加えてます。
Examples.xlsmの保存場所(ここをクリック)

 Examples.xlsmが保存されている場所は、SeleniumBasicがインストールされているサブフォルダ内になります。SeleniumBasicのインストール完了時に保存フォルダを確認することができます。ただ、大体以下フォルダのどちらかにファイル保存されています。

  • C:\Program Files\Seleniumbasic\Examples\Excel
  • shell:Local AppData\SeleniumBasic\Examples\Excel
目次

構文紹介

 今回は、ウィキペディアのメインページのCookie情報を取得します。
以下コードです。

Option Explicit
Private Sub Usage_Cookies()
    Dim Assert As New Selenium.Assert
    Dim driver As New ChromeDriver
    driver.Get "https://ja.wikipedia.org/wiki/"
    driver.Wait 2000

    'cookie名でcookieオブジェクトを取得
    Dim cookie As cookie
    Set cookie = driver.Manage.FindCookieByName("WMF-Last-Access-Global")
    Assert.Equals ".wikipedia.org", cookie.Domain

    'cookieの登録
    driver.Manage.AddCookie "hoge", "hogehoge"

    '取得ページの全cookie情報を取得
    Dim maxrow As Long
    With ThisWorkbook.Worksheets("Cookie")
    For Each cookie In driver.Manage.Cookies
        maxrow = .Cells(Rows.count, 1).End(xlUp).row
        .Cells(maxrow + 1, 1) = cookie.name
        .Cells(maxrow + 1, 2) = cookie.Value
        .Cells(maxrow + 1, 3) = cookie.Domain
        .Cells(maxrow + 1, 4) = cookie.Path
        .Cells(maxrow + 1, 5) = cookie.Secure
        .Cells(maxrow + 1, 6) = cookie.Expiry
    Next cookie
    End With
    
    'cookie情報の削除
    driver.Manage.DeleteCookieByName "WMF-Last-Access-Global"
    driver.Manage.DeleteAllCookies
    
    driver.Quit
End Sub

解説

Cookieオブジェクトの取得

10行目:Cookie名"WMF-Last-Access-Global"を検索し、cookieオブジェクト(変数)に代入
11行目:".wikipedia.org" = cookie.Domain となっているため、Assert.Equalsを通過

Cookieの登録

 14行目でCookie情報を登録します。今回は、name="hoge",value="hogehoge"にしました。
AddCookieメソッドでは、上記以外の要素は任意情報だったため、今回は入力していません。

取得ページの全Cookie情報取得

 17~28行目で、取得ページの全Cookie情報を取得して、Excelに出力しています。
cookieオブジェクト(変数)に格納しているプロパティ情報を"Cookie"シートに追加しています。
 Excelへの出力結果が以下となりました。7行目に登録したCookie情報(hoge)がありました。

Cookie情報の削除

31行目:Cookie名"WMF-Last-Access-Global"を検索し、削除
32行目:登録されている全Cookieを削除

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

VBAを中心とした自動化、効率化の手法を紹介しています。現在は、SeleniumBasicのexamplesを紹介しています。その内、SeleniumBasic以外の手法も掲載したいと思っております。

目次