WebRequestする際に、Chromeのクッキーを使用する方法を探していましたが
どうも資料が見当たらず、行き詰ってしまいましたので知識をお貸しいただきたいと思っています。
WebRequestでYahooのトップページのソースを取得することを目的とします。
ふつうにクッキーをとくに使用しない場合、ログアウトされている状態(ログインしていない)のページHTMLソースが当然 取得されると思うのですが
今回やりたいことというのは、Yahooにログイン済みのChromeのクッキーを使用して、ログイン済みのHTMLソースを取得したいです。
以下がWebRequestのソースコードとなります。
'参照
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Public Class Form1
Shared encoder As Encoding = Encoding.GetEncoding("UTF-8")
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cc As New CookieContainer
' リクエストの作成
Dim req22 As HttpWebRequest _
= CType(WebRequest.Create("http://yahoo.co.jp"), HttpWebRequest)
req22.CookieContainer = cc
Dim res22 As WebResponse = req22.GetResponse()
' レスポンスの読み取り
Dim resStream22 As Stream = res22.GetResponseStream()
Dim sr22 As StreamReader = New StreamReader(resStream22, Encoder)
Dim result22 As String = sr22.ReadToEnd()
sr22.Close()
resStream22.Close()
MsgBox(result22)
End Sub
End Class
ここまでです。
req22.CookieContainer = cc
Dim cc As New CookieContainer
予想ですがこの2行あたりでブラウザのクッキー指定できるかと
思うのですが、ChromeやFireFoxなどの外部ブラウザのクッキーを使用する方法を教えていただきたいです。
ChromeのCookieファイルパスはC:\Users\Admin\AppData\Local\Google\Chrome\User Data\Default\Cookiesです
よろしくおねがいします
根本的に,ブラウザのCookieを直接的に読み取る方法は(IEですら).NET Frameworkにはありません。
ChromeなりFireFoxなりのCookieファイルを読んで内容を解析し,
cc.Addなりcc.SetCookiesなりで追加することになるかと思います。
YuO様 回答ありがとうございます
.Add SetCookies というのを知らなかったので助かりました。
見事に成功しました
ツイート | ![]() |