Option Explicit
'以下に紹介するライブラリの参照設定をしてください
'Microsoft Internet Controls -> IEを制御するため
Sub 野菜()
Dim objIE As New InternetExplorer, myrow As Long, i As Long
objIE.Visible = True
Dim url As String
url = "http://www.info-seikabutu.jp/junpou_geppouNEW1.html?time=" & Format(Now, "yymmddhhnnss")
'↑参考までに、SSLの場合もそのまま使えます。
'テストページを、IDで読み込みます
objIE.navigate url
'ページの表示完了待ち
Do While objIE.readyState <> 4 Or objIE.Busy = True
DoEvents
Loop
Dim oH
For Each oH In objIE.Document.getElementsBytagname("a")
If InStr(oH.innertext, "市場別入荷量と価格") > 0 Then
oH.Click
Exit For
End If
Next oH
objIE.Quit
End Sub
Option Explicit
'以下に紹介するライブラリの参照設定をしてください
'Microsoft Internet Controls -> IEを制御するため
Sub 野菜()
Dim objIE As New InternetExplorer, myrow As Long, i As Long
objIE.Visible = True
Dim url As String
url = "http://www.info-seikabutu.jp/junpou_geppouNEW1.html?time=" & Format(Now, "yymmddhhnnss")
'↑参考までに、SSLの場合もそのまま使えます。
'テストページを、IDで読み込みます
objIE.navigate url
'ページの表示完了待ち
Do While objIE.readyState <> 4 Or objIE.Busy = True
DoEvents
Loop
Dim oH
For Each oH In objIE.Document.getElementsBytagname("a")
If InStr(oH.innertext, "市場別入荷量と価格") > 0 Then
oH.Click
Exit For
End If
Next oH
objIE.Quit
End Sub
>Option Explicit
>'以下に紹介するライブラリの参照設定をしてください
>'Microsoft Internet Controls -> IEを制御するため
>Sub 野菜()
> Dim objIE As New InternetExplorer, myrow As Long, i As Long
> objIE.Visible = True
>
> Dim url As String
> url = "http://www.info-seikabutu.jp/junpou_geppouNEW1.html?time=" & Format(Now, "yymmddhhnnss")
> '↑参考までに、SSLの場合もそのまま使えます。
>
> 'テストページを、IDで読み込みます
> objIE.navigate url
>
> 'ページの表示完了待ち
> Do While objIE.readyState <> 4 Or objIE.Busy = True
> DoEvents
> Loop
>Dim oH
>For Each oH In objIE.Document.getElementsBytagname("a")
>If InStr(oH.innertext, "市場別入荷量と価格") > 0 Then
>oH.Click
>Exit For
>End If
>
>Next oH
>objIE.Quit
>End Sub
>
>
>
>
>>Option Explicit
>>'以下に紹介するライブラリの参照設定をしてください
>>'Microsoft Internet Controls -> IEを制御するため
>>Sub 野菜()
>> Dim objIE As New InternetExplorer, myrow As Long, i As Long
>> objIE.Visible = True
>>
>> Dim url As String
>> url = "http://www.info-seikabutu.jp/junpou_geppouNEW1.html?time=" & Format(Now, "yymmddhhnnss")
>> '↑参考までに、SSLの場合もそのまま使えます。
>>
>> 'テストページを、IDで読み込みます
>> objIE.navigate url
>>
>> 'ページの表示完了待ち
>> Do While objIE.readyState <> 4 Or objIE.Busy = True
>> DoEvents
>> Loop
>>Dim oH
>>For Each oH In objIE.Document.getElementsBytagname("a")
>>If InStr(oH.innertext, "市場別入荷量と価格") > 0 Then
>>oH.Click
>>Exit For
>>End If
>>
>>Next oH
>>objIE.Quit
>>End Sub
>>
>>
>>
>>
Option Explicit
'以下に紹介するライブラリの参照設定をしてください
'Microsoft WinHTTP Services, version 5.1 -> HTTPリクエストをするため
'Microsoft ActiveX Data Objects X.X Library -> 文字化けを避けるため
Sub 気象庁データ抽出()
Dim url As String, n As Long, mae As Date, ato As Date, ymd As String
url = "http://www.data.jma.go.jp/gmd/risk/obsdl/show/table"
mae = saigo
If mae = Date Then
MsgBox "データは最新です。" & vbCrLf & mae - 1
Exit Sub
End If
ato = Date
ymd = "[""a"",""b"",""c"",""d"",""e"",""f""]"
ymd = Replace(ymd, "a", Year(mae))
ymd = Replace(ymd, "b", Year(ato))
ymd = Replace(ymd, "c", Month(mae))
ymd = Replace(ymd, "d", Month(ato))
ymd = Replace(ymd, "e", Day(mae))
ymd = Replace(ymd, "f", Day(ato))
Dim sp As String
sp = "stationNumList=[""s47662""]&aggrgPeriod=1&elementNumList=[[""202"",""""],[""203"",""""],[""201"",""""],[""701"",""""],[""702"",""""]]&interAnnualFlag=1&ymdList=" & ymd & "&optionNumList=[]&downloadFlag=true&rmkFlag=1&disconnectFlag=1&youbiFlag=0&kijiFlag=0&huukouFlag=0&csvFlag=1&jikantaiFlag=0&jikantaiList=[]&ymdLiteral=1&PHPSESSID=sr575afgar3woiw"’PHPSESSIDEは仮の値
' Debug.Print sp
Dim xh As New WinHttp.WinHttpRequest
xh.Open "POST", url, False
xh.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" '日本語を含む場合、サーバ側で文字化けを避けるために必要
Dim bp() As Byte
bp = StrConv(sp, vbFromUnicode)
xh.send bp
Dim sCode As String
sCode = xh.Status
If sCode <> 200 Then
MsgBox "postに失敗しました" & vbNewLine & sCode
Exit Sub
End If
Dim sHead As String
Dim sBody As String
sHead = xh.getAllResponseHeaders
Dim strm As New ADODB.Stream
strm.Open
strm.Position = 0
strm.Type = 1
strm.Write xh.ResponseBody
strm.Position = 0
strm.Type = 2
strm.Charset = "shift_jis"
sBody = strm.ReadText
strm.Close
Set strm = Nothing
Debug.Print sBody
If InStr(sBody, "TigilError") > 0 Then
MsgBox "データ量が多すぎます。", vbCritical
Exit Sub
End If
Application.ScreenUpdating = False
With Sheets("気象庁データ")
.Cells.Clear
Dim tmp, tmp2, i As Long, j As Long, data
tmp = Split(sBody, vbCrLf)
n = 1
For i = 0 To UBound(tmp) - 1
tmp2 = Split(tmp(i), ",")
For j = 0 To UBound(tmp2)
.Cells(n, j + 1) = tmp2(j)
Next j
n = n + 1
Next i
data = .Range("A7:P" & n - 1)
End With
With Sheets("天気")
n = .Range("A" & Rows.Count).End(xlUp).Row + 1
If n <= 1 Then n = 2
For i = LBound(data) To UBound(data)
.Cells(n, 1) = data(i, 1)
.Cells(n, 2) = data(i, 2)
.Cells(n, 3) = data(i, 5)
.Cells(n, 4) = data(i, 8)
.Cells(n, 5) = data(i, 11)
.Cells(n, 6) = data(i, 14)
n = n + 1
Next i
.Activate
End With
Application.ScreenUpdating = True
End Sub
Function saigo() As Date
Dim i As Long, data, buf As Date
With Sheets("天気")
If .Range("A2") = "" Then
saigo = "2010/1/1"
Exit Function
End If
data = .Range("A1").CurrentRegion
End With
buf = data(2, 1)
For i = 2 To UBound(data)
If buf - data(i, 1) < 0 Then
buf = data(i, 1)
End If
Next i
saigo = buf + 1
End Function
>>>Option Explicit
>>>'以下に紹介するライブラリの参照設定をしてください
>>>'Microsoft Internet Controls -> IEを制御するため
>>>Sub 野菜()
>>> Dim objIE As New InternetExplorer, myrow As Long, i As Long
>>> objIE.Visible = True
>>>
>>> Dim url As String
>>> url = "http://www.info-seikabutu.jp/junpou_geppouNEW1.html?time=" & Format(Now, "yymmddhhnnss")
>>> '↑参考までに、SSLの場合もそのまま使えます。
>>>
>>> 'テストページを、IDで読み込みます
>>> objIE.navigate url
>>>
>>> 'ページの表示完了待ち
>>> Do While objIE.readyState <> 4 Or objIE.Busy = True
>>> DoEvents
>>> Loop
>>>Dim oH
>>>For Each oH In objIE.Document.getElementsBytagname("a")
>>>If InStr(oH.innertext, "市場別入荷量と価格") > 0 Then
>>>oH.Click
>>>Exit For
>>>End If
>>>
>>>Next oH
>>>objIE.Quit
>>>End Sub
>>>
>>>
>>>
>>>
受講生さんの投稿
(投稿ID: 1221)
東京青果情報センターからCSVファイルを抜き出すマクロを書いてみました。
ダウンロードボタンを押すところまで出来たのですが、その先がわかりません。
ダウンロードのダイアログボックスをコントロールすることは可能でしょうか。
ゲストさんのコメント
(コメントID: 2421)
InternetExplorerを使う限り、無理かと思います。
そこから先は、ショートカットキー操作でさくさくっとやる、というくらいではダメでしょうか?
>こんばんは。
>東京青果情報センターからCSVファイルを抜き出すマクロを書いてみました。
>ダウンロードボタンを押すところまで出来たのですが、その先がわかりません。
>ダウンロードのダイアログボックスをコントロールすることは可能でしょうか。
受講生さんのコメント
(コメントID: 2423)
わかりました。ショートカットキー操作で対応してみます。
>匿名 さん:
>
>InternetExplorerを使う限り、無理かと思います。
>そこから先は、ショートカットキー操作でさくさくっとやる、というくらいではダメでしょうか?
>
>
>>こんばんは。
>>東京青果情報センターからCSVファイルを抜き出すマクロを書いてみました。
>>ダウンロードボタンを押すところまで出来たのですが、その先がわかりません。
>>ダウンロードのダイアログボックスをコントロールすることは可能でしょうか。
>
>
>
>
ゲストさんのコメント
(コメントID: 2424)
そうしてください。
それか、他のライブラリを使うかですね。
>小川慶一 さん:
>わかりました。ショートカットキー操作で対応してみます。
>
>
>>匿名 さん:
>>
>>InternetExplorerを使う限り、無理かと思います。
>>そこから先は、ショートカットキー操作でさくさくっとやる、というくらいではダメでしょうか?
>>
>>
>>>こんばんは。
>>>東京青果情報センターからCSVファイルを抜き出すマクロを書いてみました。
>>>ダウンロードボタンを押すところまで出来たのですが、その先がわかりません。
>>>ダウンロードのダイアログボックスをコントロールすることは可能でしょうか。
>>
>>
>>
>>
>
受講生さんのコメント
(コメントID: 2441)
WinHTTPで気象庁のCSVファイルを読み込みセルに格納する
マクロを書いてみました。上手くはいったのですが、PHPSESSIDが
一定時間で変化してしまい、その対応がわかりません。また、他のパソコンでも
上手くいきませんでした。※PHPSESSIDは仮の値を入力しています。
これを回避する方法はあるのでしょうか?
>匿名 さん:
>
>そうしてください。
>それか、他のライブラリを使うかですね。
>
>
>>小川慶一 さん:
>>わかりました。ショートカットキー操作で対応してみます。
>>
>>
>>>匿名 さん:
>>>
>>>InternetExplorerを使う限り、無理かと思います。
>>>そこから先は、ショートカットキー操作でさくさくっとやる、というくらいではダメでしょうか?
>>>
>>>
>>>>こんばんは。
>>>>東京青果情報センターからCSVファイルを抜き出すマクロを書いてみました。
>>>>ダウンロードボタンを押すところまで出来たのですが、その先がわかりません。
>>>>ダウンロードのダイアログボックスをコントロールすることは可能でしょうか。
>>>
>>>
>>>
>>>
>>
>
ゲストさんのコメント
(コメントID: 2443)
レスポンスヘッダーで新しいPHPSESSIDを受け取ったら次のリクエストではそれを使う、というコードになると思います。
それで実装してみてください。
受講生さんのコメント
(コメントID: 2445)
レスポンスヘッダーの中身が以下なのですが、PHPSESSIDが見当たりません。
何かアプローチに問題がありそうでしょうか?
Cache-Control: max-age=600
Date: Thu, 16 Apr 2015 11:14:29 GMT
Pragma: no-cache
Content-Length: 910
Content-Type: "text/x-comma-separated-values"
Expires: 0
Server: Apache
Content-Disposition: attachment; filename="data.csv"
Content-Transfer-Encoding: binary
MS-Author-Via: DAV
X-Content-Type-Options: nosniff
X-Powered-By: PHP/5.3.3
>匿名 さん:
>
>レスポンスヘッダーで新しいPHPSESSIDを受け取ったら次のリクエストではそれを使う、というコードになると思います。
>それで実装してみてください。
>
ゲストさんのコメント
(コメントID: 2447)
僕も、ちょっと勘違いしていたかも。
ブラウザーで動かしたときに取ってきたクッキーの値を基にPHPSESSIDを取得された、ということですが。
レスポンスで確実にPHPSESSIDを受け取れるリクエストを見つけられそうでしょうか。
(..と言っても無理かと思いますので。。解析方法について解説した追加動画を追ってお送りします)
>小川慶一 さん:
>レスポンスヘッダーの中身が以下なのですが、PHPSESSIDが見当たりません。
>何かアプローチに問題がありそうでしょうか?
>
>Cache-Control: max-age=600
>Date: Thu, 16 Apr 2015 11:14:29 GMT
>Pragma: no-cache
>Content-Length: 910
>Content-Type: "text/x-comma-separated-values"
>Expires: 0
>Server: Apache
>Content-Disposition: attachment; filename="data.csv"
>Content-Transfer-Encoding: binary
>MS-Author-Via: DAV
>X-Content-Type-Options: nosniff
>X-Powered-By: PHP/5.3.3
>
>>匿名 さん:
>>
>>レスポンスヘッダーで新しいPHPSESSIDを受け取ったら次のリクエストではそれを使う、というコードになると思います。
>>それで実装してみてください。
>>
>
ゲストさんのコメント
(コメントID: 2448)
というか、すでにお送りしていますね。
wiresharkを使った解析の動画です。あれを見て、まずは、PHPSESSIDを取得できるリクエストを見つけることからかと思います。
あと、PHPSESSIDが無効になったあとそのPHPSESSIDを送ったらどういうレスポンスが返って来ているのか?そこをもっと知りたいです。
>小川慶一 さん:
>レスポンスヘッダーの中身が以下なのですが、PHPSESSIDが見当たりません。
>何かアプローチに問題がありそうでしょうか?
>
>Cache-Control: max-age=600
>Date: Thu, 16 Apr 2015 11:14:29 GMT
>Pragma: no-cache
>Content-Length: 910
>Content-Type: "text/x-comma-separated-values"
>Expires: 0
>Server: Apache
>Content-Disposition: attachment; filename="data.csv"
>Content-Transfer-Encoding: binary
>MS-Author-Via: DAV
>X-Content-Type-Options: nosniff
>X-Powered-By: PHP/5.3.3
>
>>匿名 さん:
>>
>>レスポンスヘッダーで新しいPHPSESSIDを受け取ったら次のリクエストではそれを使う、というコードになると思います。
>>それで実装してみてください。
>>
>
受講生さんのコメント
(コメントID: 2454)
wiresharkのPOSTデータのみ解析していたのですが、その他の項目も調べてみます。
無効になった後のレスポンスは以下です。
ヘッダー
Cache-Control: max-age=600
Date: Sat, 18 Apr 2015 11:59:21 GMT
Content-Length: 5316
Content-Type: text/html; charset=utf-8
Server: Apache
MS-Author-Via: DAV
X-Content-Type-Options: nosniff
X-Powered-By: PHP/5.3.3
ボディ
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>気象庁|過去の気象データ・ダウンロード</title>
<meta name="Author" content="気象庁 Japan Meteorological Agency" />
<meta name="keywords" content="気象庁 Japan Meteorological Agency" />
<meta name="description" content="気象庁が提供するページです" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<link rel="stylesheet" type="text/css" href="/com/css/define.css" media="all" />
<style type="text/css" media="all"><!-- @import url(/com/default.css); --></style>
<script type="text/javascript">
/*@cc_on _d=document;
eval('var document=_d');
@*/
</script>
<style>
<!--
.tblnarabi td{
padding:0;
white-space:nowrap;
}
-->
</style>
<link href="http://www.data.jma.go.jp/risk/obsdl/web/css/top.2.0.min.css" rel="stylesheet" type="text/css" /> </head>
<body>
<div id="main-area">
<div id="header_area">
<div id="nheader">
<div id="logo"><a href="http://www.jma.go.jp/jma/index.html"><img src="http://www.jma.go.jp/jma/com/images/logo.gif" alt="気象庁" width="120" height="67" /></a></div>
<div id="header_right">
<div id="header_link">
<ul>
<li id="toMain"><a href="#main">本文へ</a></li>
<li xml:lang="en" lang="en"><a href="http://www.jma.go.jp/jma/indexe.html">ENGLISH</a></li>
<li><a href="http://www.jma.go.jp/jma/kishou/info/goiken.html">ご意見・ご感想</a></li>
<li id="siteMap"><a href="http://www.jma.go.jp/jma/kishou/sitemap.html">サイトマップ</a></li>
</ul>
</div>
<!-- search -->
<div id="yjsearch" class="watermark">
<p>キーワードを入力し検索ボタンを押下ください。</p>
<form action="http://www.jma.go.jp/jma/menu/search.html" method="get" id="srch">
<input type="search" results="5" name="p" id="srchInput" />
<input type="image" src="http://www.jma.go.jp/jma/com/images/btn_search.gif" alt="検索" id="srchBtn" onclick="document.getElementById('srchInput').focus();" />
<input type="hidden" id="fr" name="fr" value="cse" />
<input type="hidden" id="ei" name="ei" value="utf-8" />
<input type="hidden" id="csid" name="csid" value="pD.LqPJKNL6pX5S8V0Zj684fKOuX.849vg9h" />
<input type="hidden" name="vs" value="www.jma.go.jp" id="yjInsite" />
</form>
<img src="http://custom.search.yahoo.co.jp/images/window/pD.LqPJKNL6pX5S8V0Zj684fKOuX.849vg9h.gif" alt="" /> </div>
<script type="text/javascript">
(function() {
var sb = document.getElementById('yjsearch');
if (sb && sb.className == 'watermark') {
var si = document.getElementById('srchInput');
var f = function() { si.className = 'nomark'; };
var b = function() {
if (si.value == '') {
si.className = '';
}
};
si.onfocus = f;
si.onblur = b;
if (!/[&?]p=[^&]/.test(location.search)) {
b();
} else {
f();
}
}
})();
</script>
<!-- search -->
</div>
<ul id="gnavi">
<li><a href="http://www.jma.go.jp/">ホーム</a></li>
<li><a href="http://www.jma.go.jp/jma/menu/menuflash.html">防災情報</a></li>
<li><a href="http://www.jma.go.jp/jma/menu/menureport.html" class="on">各種データ・資料</a></li>
<li><a href="http://www.jma.go.jp/jma/menu/menuknowledge.html">知識・解説</a></li>
<li><a href="http://www.jma.go.jp/jma/menu/menuabout.html">気象庁について</a></li>
<li><a href="http://www.jma.go.jp/jma/menu/menulinks.html">案内・申請</a></li>
</ul>
</div>
</div>
<!--header end --> <div id="contents_area2">
<div id="ncontents2">
<!-- pankuzu menu -->
<div class="clearfix">
<ul class="breadcrumb2">
<li><a href="http://www.jma.go.jp/">ホーム</a> > </li>
<li><a href="http://www.jma.go.jp/jma/menu/menureport.html">各種データ・資料</a> > </li>
<li>過去の気象データ・ダウンロード</li>
</ul>
</div>
<script type="text/javascript">
<!--
function TigilError() {
return true;
}
window.onerror = TigilError;
window.localStorage.setItem('errFlag', "1");
-->
</script>
<ul class="pagelink">
<li><a href="http://www.data.jma.go.jp/risk/obsdl/index.php">メニューページに戻る</a></li>
</ul>
<p>ブラウザの戻るボタンで戻り、もう一度やり直してください</p>
</div> </div>
<div id="footer_area">
<div id="nfooter">
<p>気象庁:〒100-8122東京都千代田区大手町1-3-4 代表電話:03-3212-8341</p>
<ul>
<li><a href="http://www.jma.go.jp/jma/kishou/info/coment.html">気象庁ホームページについて</a></li>
</ul>
</div>
</div> </div>
</body>
</html>
>匿名 さん:
>
>というか、すでにお送りしていますね。
>wiresharkを使った解析の動画です。あれを見て、まずは、PHPSESSIDを取得できるリクエストを見つけることからかと思います。
>あと、PHPSESSIDが無効になったあとそのPHPSESSIDを送ったらどういうレスポンスが返って来ているのか?そこをもっと知りたいです。
>
>
>
>>小川慶一 さん:
>>レスポンスヘッダーの中身が以下なのですが、PHPSESSIDが見当たりません。
>>何かアプローチに問題がありそうでしょうか?
>>
>>Cache-Control: max-age=600
>>Date: Thu, 16 Apr 2015 11:14:29 GMT
>>Pragma: no-cache
>>Content-Length: 910
>>Content-Type: "text/x-comma-separated-values"
>>Expires: 0
>>Server: Apache
>>Content-Disposition: attachment; filename="data.csv"
>>Content-Transfer-Encoding: binary
>>MS-Author-Via: DAV
>>X-Content-Type-Options: nosniff
>>X-Powered-By: PHP/5.3.3
>>
>>>匿名 さん:
>>>
>>>レスポンスヘッダーで新しいPHPSESSIDを受け取ったら次のリクエストではそれを使う、というコードになると思います。
>>>それで実装してみてください。
>>>
>>
>
ゲストさんのコメント
(コメントID: 2457)
そもそも、 PHPSESSID を送信できないと、どういう点で困るんでしたっけ。
以下のURLを起点としてCSVファイルDLまで僕のブラウザでやってみましたが、その間、CookieにPHPSESSIDの値が書き込まれた形跡がありません。
http://www.data.jma.go.jp/risk/obsdl/index.php
てことは、目的のCSVファイルがあるとして、それを取得できないとしても、 PHPSESSID の値あるなしの問題では無いのでは?という気も。。
以下に新動画を置きました。これと同じように操作していって、どこの画面でどういう操作をすると PHPSESSID の値が設定されるのか、トレースしていただけますか。
https://www.youtube.com/watch?v=4NeFjqkLltc
まずは以上のとおりです。
>小川慶一 さん:
>wiresharkのPOSTデータのみ解析していたのですが、その他の項目も調べてみます。
>無効になった後のレスポンスは以下です。
>
>ヘッダー
>Cache-Control: max-age=600
>Date: Sat, 18 Apr 2015 11:59:21 GMT
>Content-Length: 5316
>Content-Type: text/html; charset=utf-8
>Server: Apache
>MS-Author-Via: DAV
>X-Content-Type-Options: nosniff
>X-Powered-By: PHP/5.3.3
>
>ボディ
><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
> <title>気象庁|過去の気象データ・ダウンロード</title>
> <meta name="Author" content="気象庁 Japan Meteorological Agency" />
> <meta name="keywords" content="気象庁 Japan Meteorological Agency" />
> <meta name="description" content="気象庁が提供するページです" />
> <meta http-equiv="Content-Style-Type" content="text/css" />
> <meta http-equiv="Content-Script-Type" content="text/javascript" />
> <link rel="stylesheet" type="text/css" href="/com/css/define.css" media="all" />
> <style type="text/css" media="all"><!-- @import url(/com/default.css); --></style>
> <script type="text/javascript">
> /*@cc_on _d=document;
> eval('var document=_d');
> @*/
> </script>
> <style>
> <!--
> .tblnarabi td{
> padding:0;
> white-space:nowrap;
> }
> -->
> </style>
> <link href="http://www.data.jma.go.jp/risk/obsdl/web/css/top.2.0.min.css" rel="stylesheet" type="text/css" /> </head>
> <body>
> <div id="main-area">
> <div id="header_area">
> <div id="nheader">
> <div id="logo"><a href="http://www.jma.go.jp/jma/index.html"><img src="http://www.jma.go.jp/jma/com/images/logo.gif" alt="気象庁" width="120" height="67" /></a></div>
>
> <div id="header_right">
> <div id="header_link">
> <ul>
> <li id="toMain"><a href="#main">本文へ</a></li>
> <li xml:lang="en" lang="en"><a href="http://www.jma.go.jp/jma/indexe.html">ENGLISH</a></li>
> <li><a href="http://www.jma.go.jp/jma/kishou/info/goiken.html">ご意見・ご感想</a></li>
> <li id="siteMap"><a href="http://www.jma.go.jp/jma/kishou/sitemap.html">サイトマップ</a></li>
> </ul>
> </div>
> <!-- search -->
> <div id="yjsearch" class="watermark">
> <p>キーワードを入力し検索ボタンを押下ください。</p>
> <form action="http://www.jma.go.jp/jma/menu/search.html" method="get" id="srch">
> <input type="search" results="5" name="p" id="srchInput" />
> <input type="image" src="http://www.jma.go.jp/jma/com/images/btn_search.gif" alt="検索" id="srchBtn" onclick="document.getElementById('srchInput').focus();" />
> <input type="hidden" id="fr" name="fr" value="cse" />
> <input type="hidden" id="ei" name="ei" value="utf-8" />
> <input type="hidden" id="csid" name="csid" value="pD.LqPJKNL6pX5S8V0Zj684fKOuX.849vg9h" />
> <input type="hidden" name="vs" value="www.jma.go.jp" id="yjInsite" />
> </form>
> <img src="http://custom.search.yahoo.co.jp/images/window/pD.LqPJKNL6pX5S8V0Zj684fKOuX.849vg9h.gif" alt="" /> </div>
> <script type="text/javascript">
> (function() {
> var sb = document.getElementById('yjsearch');
> if (sb && sb.className == 'watermark') {
> var si = document.getElementById('srchInput');
> var f = function() { si.className = 'nomark'; };
> var b = function() {
> if (si.value == '') {
> si.className = '';
> }
> };
> si.onfocus = f;
> si.onblur = b;
> if (!/[&?]p=[^&]/.test(location.search)) {
> b();
> } else {
> f();
> }
> }
> })();
> </script>
> <!-- search -->
> </div>
> <ul id="gnavi">
> <li><a href="http://www.jma.go.jp/">ホーム</a></li>
> <li><a href="http://www.jma.go.jp/jma/menu/menuflash.html">防災情報</a></li>
> <li><a href="http://www.jma.go.jp/jma/menu/menureport.html" class="on">各種データ・資料</a></li>
> <li><a href="http://www.jma.go.jp/jma/menu/menuknowledge.html">知識・解説</a></li>
> <li><a href="http://www.jma.go.jp/jma/menu/menuabout.html">気象庁について</a></li>
> <li><a href="http://www.jma.go.jp/jma/menu/menulinks.html">案内・申請</a></li>
> </ul>
> </div>
></div>
><!--header end --> <div id="contents_area2">
> <div id="ncontents2">
> <!-- pankuzu menu -->
> <div class="clearfix">
> <ul class="breadcrumb2">
> <li><a href="http://www.jma.go.jp/">ホーム</a> > </li>
> <li><a href="http://www.jma.go.jp/jma/menu/menureport.html">各種データ・資料</a> > </li>
> <li>過去の気象データ・ダウンロード</li>
> </ul>
> </div>
><script type="text/javascript">
><!--
>function TigilError() {
> return true;
>}
>window.onerror = TigilError;
>window.localStorage.setItem('errFlag', "1");
>-->
></script>
><ul class="pagelink">
> <li><a href="http://www.data.jma.go.jp/risk/obsdl/index.php">メニューページに戻る</a></li>
></ul>
><p>ブラウザの戻るボタンで戻り、もう一度やり直してください</p>
> </div> </div>
> <div id="footer_area">
> <div id="nfooter">
> <p>気象庁:〒100-8122東京都千代田区大手町1-3-4 代表電話:03-3212-8341</p>
> <ul>
> <li><a href="http://www.jma.go.jp/jma/kishou/info/coment.html">気象庁ホームページについて</a></li>
> </ul>
> </div>
></div> </div>
> </body>
></html>
>
>
>>匿名 さん:
>>
>>というか、すでにお送りしていますね。
>>wiresharkを使った解析の動画です。あれを見て、まずは、PHPSESSIDを取得できるリクエストを見つけることからかと思います。
>>あと、PHPSESSIDが無効になったあとそのPHPSESSIDを送ったらどういうレスポンスが返って来ているのか?そこをもっと知りたいです。
>>
>>
>>
>>>小川慶一 さん:
>>>レスポンスヘッダーの中身が以下なのですが、PHPSESSIDが見当たりません。
>>>何かアプローチに問題がありそうでしょうか?
>>>
>>>Cache-Control: max-age=600
>>>Date: Thu, 16 Apr 2015 11:14:29 GMT
>>>Pragma: no-cache
>>>Content-Length: 910
>>>Content-Type: "text/x-comma-separated-values"
>>>Expires: 0
>>>Server: Apache
>>>Content-Disposition: attachment; filename="data.csv"
>>>Content-Transfer-Encoding: binary
>>>MS-Author-Via: DAV
>>>X-Content-Type-Options: nosniff
>>>X-Powered-By: PHP/5.3.3
>>>
>>>>匿名 さん:
>>>>
>>>>レスポンスヘッダーで新しいPHPSESSIDを受け取ったら次のリクエストではそれを使う、というコードになると思います。
>>>>それで実装してみてください。
>>>>
>>>
>>
>
受講生さんのコメント
(コメントID: 2458)
解説動画視聴させて頂きました。ありがとうございます。
動画のようにCookiesの値を見てみましたが、PHPSESSIDは確かに見当たりません。
もう少し調べてみます。
質問に到った経緯は以下です。
wireSharkでPOSTデータ解析
↓
POSTデータを文字列で作成
sp = "stationNumList=[""s47662""]&aggrgPeriod=1&elementNumList=[[""202"",""""],[""203"",""""],[""201"",""""],[""701"",""""],[""702"",""""]]&interAnnualFlag=1&ymdList=" & ymd & "&optionNumList=[]&downloadFlag=true&rmkFlag=1&disconnectFlag=1&youbiFlag=0&kijiFlag=0&huukouFlag=0&csvFlag=1&jikantaiFlag=0&jikantaiList=[]&ymdLiteral=1&PHPSESSID=muipn3bj77vmvncn2eu0ebpp40"
↓
マクロ実行。無事CSVデータをセルに格納。
↓
翌日にマクロ実行。CSVデータを取得できず。
↓
再度wireSharkでPOSTデータ解析。PHPSESSIDの値が変化している。
↓
再度POSTデータを文字列で作成。(PHPSESSIDのみ変更)
↓
マクロ実行。上手くいく。
↓
PHPSESSIDの毎回の変化に対応できないか試行錯誤するも上手くいかず。
↓
小川先生に質問をしてみる。
>匿名 さん:
>
>そもそも、 PHPSESSID を送信できないと、どういう点で困るんでしたっけ。
>
>以下のURLを起点としてCSVファイルDLまで僕のブラウザでやってみましたが、その間、CookieにPHPSESSIDの値が書き込まれた形跡がありません。
>http://www.data.jma.go.jp/risk/obsdl/index.php
>
>てことは、目的のCSVファイルがあるとして、それを取得できないとしても、 PHPSESSID の値あるなしの問題では無いのでは?という気も。。
>
>以下に新動画を置きました。これと同じように操作していって、どこの画面でどういう操作をすると PHPSESSID の値が設定されるのか、トレースしていただけますか。
>https://www.youtube.com/watch?v=4NeFjqkLltc
>
>まずは以上のとおりです。
>
>
>
>
>
>>小川慶一 さん:
>>wiresharkのPOSTデータのみ解析していたのですが、その他の項目も調べてみます。
>>無効になった後のレスポンスは以下です。
>>
>>ヘッダー
>>Cache-Control: max-age=600
>>Date: Sat, 18 Apr 2015 11:59:21 GMT
>>Content-Length: 5316
>>Content-Type: text/html; charset=utf-8
>>Server: Apache
>>MS-Author-Via: DAV
>>X-Content-Type-Options: nosniff
>>X-Powered-By: PHP/5.3.3
>>
>>ボディ
>><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
>> <head>
>> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
>> <title>気象庁|過去の気象データ・ダウンロード</title>
>> <meta name="Author" content="気象庁 Japan Meteorological Agency" />
>> <meta name="keywords" content="気象庁 Japan Meteorological Agency" />
>> <meta name="description" content="気象庁が提供するページです" />
>> <meta http-equiv="Content-Style-Type" content="text/css" />
>> <meta http-equiv="Content-Script-Type" content="text/javascript" />
>> <link rel="stylesheet" type="text/css" href="/com/css/define.css" media="all" />
>> <style type="text/css" media="all"><!-- @import url(/com/default.css); --></style>
>> <script type="text/javascript">
>> /*@cc_on _d=document;
>> eval('var document=_d');
>> @*/
>> </script>
>> <style>
>> <!--
>> .tblnarabi td{
>> padding:0;
>> white-space:nowrap;
>> }
>> -->
>> </style>
>> <link href="http://www.data.jma.go.jp/risk/obsdl/web/css/top.2.0.min.css" rel="stylesheet" type="text/css" /> </head>
>> <body>
>> <div id="main-area">
>> <div id="header_area">
>> <div id="nheader">
>> <div id="logo"><a href="http://www.jma.go.jp/jma/index.html"><img src="http://www.jma.go.jp/jma/com/images/logo.gif" alt="気象庁" width="120" height="67" /></a></div>
>>
>> <div id="header_right">
>> <div id="header_link">
>> <ul>
>> <li id="toMain"><a href="#main">本文へ</a></li>
>> <li xml:lang="en" lang="en"><a href="http://www.jma.go.jp/jma/indexe.html">ENGLISH</a></li>
>> <li><a href="http://www.jma.go.jp/jma/kishou/info/goiken.html">ご意見・ご感想</a></li>
>> <li id="siteMap"><a href="http://www.jma.go.jp/jma/kishou/sitemap.html">サイトマップ</a></li>
>> </ul>
>> </div>
>> <!-- search -->
>> <div id="yjsearch" class="watermark">
>> <p>キーワードを入力し検索ボタンを押下ください。</p>
>> <form action="http://www.jma.go.jp/jma/menu/search.html" method="get" id="srch">
>> <input type="search" results="5" name="p" id="srchInput" />
>> <input type="image" src="http://www.jma.go.jp/jma/com/images/btn_search.gif" alt="検索" id="srchBtn" onclick="document.getElementById('srchInput').focus();" />
>> <input type="hidden" id="fr" name="fr" value="cse" />
>> <input type="hidden" id="ei" name="ei" value="utf-8" />
>> <input type="hidden" id="csid" name="csid" value="pD.LqPJKNL6pX5S8V0Zj684fKOuX.849vg9h" />
>> <input type="hidden" name="vs" value="www.jma.go.jp" id="yjInsite" />
>> </form>
>> <img src="http://custom.search.yahoo.co.jp/images/window/pD.LqPJKNL6pX5S8V0Zj684fKOuX.849vg9h.gif" alt="" /> </div>
>> <script type="text/javascript">
>> (function() {
>> var sb = document.getElementById('yjsearch');
>> if (sb && sb.className == 'watermark') {
>> var si = document.getElementById('srchInput');
>> var f = function() { si.className = 'nomark'; };
>> var b = function() {
>> if (si.value == '') {
>> si.className = '';
>> }
>> };
>> si.onfocus = f;
>> si.onblur = b;
>> if (!/[&?]p=[^&]/.test(location.search)) {
>> b();
>> } else {
>> f();
>> }
>> }
>> })();
>> </script>
>> <!-- search -->
>> </div>
>> <ul id="gnavi">
>> <li><a href="http://www.jma.go.jp/">ホーム</a></li>
>> <li><a href="http://www.jma.go.jp/jma/menu/menuflash.html">防災情報</a></li>
>> <li><a href="http://www.jma.go.jp/jma/menu/menureport.html" class="on">各種データ・資料</a></li>
>> <li><a href="http://www.jma.go.jp/jma/menu/menuknowledge.html">知識・解説</a></li>
>> <li><a href="http://www.jma.go.jp/jma/menu/menuabout.html">気象庁について</a></li>
>> <li><a href="http://www.jma.go.jp/jma/menu/menulinks.html">案内・申請</a></li>
>> </ul>
>> </div>
>></div>
>><!--header end --> <div id="contents_area2">
>> <div id="ncontents2">
>> <!-- pankuzu menu -->
>> <div class="clearfix">
>> <ul class="breadcrumb2">
>> <li><a href="http://www.jma.go.jp/">ホーム</a> > </li>
>> <li><a href="http://www.jma.go.jp/jma/menu/menureport.html">各種データ・資料</a> > </li>
>> <li>過去の気象データ・ダウンロード</li>
>> </ul>
>> </div>
>><script type="text/javascript">
>><!--
>>function TigilError() {
>> return true;
>>}
>>window.onerror = TigilError;
>>window.localStorage.setItem('errFlag', "1");
>>-->
>></script>
>><ul class="pagelink">
>> <li><a href="http://www.data.jma.go.jp/risk/obsdl/index.php">メニューページに戻る</a></li>
>></ul>
>><p>ブラウザの戻るボタンで戻り、もう一度やり直してください</p>
>> </div> </div>
>> <div id="footer_area">
>> <div id="nfooter">
>> <p>気象庁:〒100-8122東京都千代田区大手町1-3-4 代表電話:03-3212-8341</p>
>> <ul>
>> <li><a href="http://www.jma.go.jp/jma/kishou/info/coment.html">気象庁ホームページについて</a></li>
>> </ul>
>> </div>
>></div> </div>
>> </body>
>></html>
>>
>>
>>>匿名 さん:
>>>
>>>というか、すでにお送りしていますね。
>>>wiresharkを使った解析の動画です。あれを見て、まずは、PHPSESSIDを取得できるリクエストを見つけることからかと思います。
>>>あと、PHPSESSIDが無効になったあとそのPHPSESSIDを送ったらどういうレスポンスが返って来ているのか?そこをもっと知りたいです。
>>>
>>>
>>>
>>>>小川慶一 さん:
>>>>レスポンスヘッダーの中身が以下なのですが、PHPSESSIDが見当たりません。
>>>>何かアプローチに問題がありそうでしょうか?
>>>>
>>>>Cache-Control: max-age=600
>>>>Date: Thu, 16 Apr 2015 11:14:29 GMT
>>>>Pragma: no-cache
>>>>Content-Length: 910
>>>>Content-Type: "text/x-comma-separated-values"
>>>>Expires: 0
>>>>Server: Apache
>>>>Content-Disposition: attachment; filename="data.csv"
>>>>Content-Transfer-Encoding: binary
>>>>MS-Author-Via: DAV
>>>>X-Content-Type-Options: nosniff
>>>>X-Powered-By: PHP/5.3.3
>>>>
>>>>>匿名 さん:
>>>>>
>>>>>レスポンスヘッダーで新しいPHPSESSIDを受け取ったら次のリクエストではそれを使う、というコードになると思います。
>>>>>それで実装してみてください。
>>>>>
>>>>
>>>
>>
>
ゲストさんのコメント
(コメントID: 2460)
なるほど。そんなに間が空いたんですね。
翌日だとセッション切れしているんじゃないですかね。
本家のサイトにブラウザーで接続しても、そんなに間が空くと設定はリセットされているものと思います。何故か?セッションの有効期限が終っているからです。
そこで、セッションをサーバが再発行したということかと。
>小川慶一 さん:
>解説動画視聴させて頂きました。ありがとうございます。
>動画のようにCookiesの値を見てみましたが、PHPSESSIDは確かに見当たりません。
>もう少し調べてみます。
>
>質問に到った経緯は以下です。
>wireSharkでPOSTデータ解析
>↓
>POSTデータを文字列で作成
>sp = "stationNumList=[""s47662""]&aggrgPeriod=1&elementNumList=[[""202"",""""],[""203"",""""],[""201"",""""],[""701"",""""],[""702"",""""]]&interAnnualFlag=1&ymdList=" & ymd & "&optionNumList=[]&downloadFlag=true&rmkFlag=1&disconnectFlag=1&youbiFlag=0&kijiFlag=0&huukouFlag=0&csvFlag=1&jikantaiFlag=0&jikantaiList=[]&ymdLiteral=1&PHPSESSID=muipn3bj77vmvncn2eu0ebpp40"
>↓
>マクロ実行。無事CSVデータをセルに格納。
>↓
>翌日にマクロ実行。CSVデータを取得できず。
>↓
>再度wireSharkでPOSTデータ解析。PHPSESSIDの値が変化している。
>↓
>再度POSTデータを文字列で作成。(PHPSESSIDのみ変更)
>↓
>マクロ実行。上手くいく。
>↓
>PHPSESSIDの毎回の変化に対応できないか試行錯誤するも上手くいかず。
>↓
>小川先生に質問をしてみる。
>
>>匿名 さん:
>>
>>そもそも、 PHPSESSID を送信できないと、どういう点で困るんでしたっけ。
>>
>>以下のURLを起点としてCSVファイルDLまで僕のブラウザでやってみましたが、その間、CookieにPHPSESSIDの値が書き込まれた形跡がありません。
>>http://www.data.jma.go.jp/risk/obsdl/index.php
>>
>>てことは、目的のCSVファイルがあるとして、それを取得できないとしても、 PHPSESSID の値あるなしの問題では無いのでは?という気も。。
>>
>>以下に新動画を置きました。これと同じように操作していって、どこの画面でどういう操作をすると PHPSESSID の値が設定されるのか、トレースしていただけますか。
>>https://www.youtube.com/watch?v=4NeFjqkLltc
>>
>>まずは以上のとおりです。
>>
>>
>>
>>
>>
>>>小川慶一 さん:
>>>wiresharkのPOSTデータのみ解析していたのですが、その他の項目も調べてみます。
>>>無効になった後のレスポンスは以下です。
>>>
>>>ヘッダー
>>>Cache-Control: max-age=600
>>>Date: Sat, 18 Apr 2015 11:59:21 GMT
>>>Content-Length: 5316
>>>Content-Type: text/html; charset=utf-8
>>>Server: Apache
>>>MS-Author-Via: DAV
>>>X-Content-Type-Options: nosniff
>>>X-Powered-By: PHP/5.3.3
>>>
>>>ボディ
>>><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
>>> <head>
>>> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
>>> <title>気象庁|過去の気象データ・ダウンロード</title>
>>> <meta name="Author" content="気象庁 Japan Meteorological Agency" />
>>> <meta name="keywords" content="気象庁 Japan Meteorological Agency" />
>>> <meta name="description" content="気象庁が提供するページです" />
>>> <meta http-equiv="Content-Style-Type" content="text/css" />
>>> <meta http-equiv="Content-Script-Type" content="text/javascript" />
>>> <link rel="stylesheet" type="text/css" href="/com/css/define.css" media="all" />
>>> <style type="text/css" media="all"><!-- @import url(/com/default.css); --></style>
>>> <script type="text/javascript">
>>> /*@cc_on _d=document;
>>> eval('var document=_d');
>>> @*/
>>> </script>
>>> <style>
>>> <!--
>>> .tblnarabi td{
>>> padding:0;
>>> white-space:nowrap;
>>> }
>>> -->
>>> </style>
>>> <link href="http://www.data.jma.go.jp/risk/obsdl/web/css/top.2.0.min.css" rel="stylesheet" type="text/css" /> </head>
>>> <body>
>>> <div id="main-area">
>>> <div id="header_area">
>>> <div id="nheader">
>>> <div id="logo"><a href="http://www.jma.go.jp/jma/index.html"><img src="http://www.jma.go.jp/jma/com/images/logo.gif" alt="気象庁" width="120" height="67" /></a></div>
>>>
>>> <div id="header_right">
>>> <div id="header_link">
>>> <ul>
>>> <li id="toMain"><a href="#main">本文へ</a></li>
>>> <li xml:lang="en" lang="en"><a href="http://www.jma.go.jp/jma/indexe.html">ENGLISH</a></li>
>>> <li><a href="http://www.jma.go.jp/jma/kishou/info/goiken.html">ご意見・ご感想</a></li>
>>> <li id="siteMap"><a href="http://www.jma.go.jp/jma/kishou/sitemap.html">サイトマップ</a></li>
>>> </ul>
>>> </div>
>>> <!-- search -->
>>> <div id="yjsearch" class="watermark">
>>> <p>キーワードを入力し検索ボタンを押下ください。</p>
>>> <form action="http://www.jma.go.jp/jma/menu/search.html" method="get" id="srch">
>>> <input type="search" results="5" name="p" id="srchInput" />
>>> <input type="image" src="http://www.jma.go.jp/jma/com/images/btn_search.gif" alt="検索" id="srchBtn" onclick="document.getElementById('srchInput').focus();" />
>>> <input type="hidden" id="fr" name="fr" value="cse" />
>>> <input type="hidden" id="ei" name="ei" value="utf-8" />
>>> <input type="hidden" id="csid" name="csid" value="pD.LqPJKNL6pX5S8V0Zj684fKOuX.849vg9h" />
>>> <input type="hidden" name="vs" value="www.jma.go.jp" id="yjInsite" />
>>> </form>
>>> <img src="http://custom.search.yahoo.co.jp/images/window/pD.LqPJKNL6pX5S8V0Zj684fKOuX.849vg9h.gif" alt="" /> </div>
>>> <script type="text/javascript">
>>> (function() {
>>> var sb = document.getElementById('yjsearch');
>>> if (sb && sb.className == 'watermark') {
>>> var si = document.getElementById('srchInput');
>>> var f = function() { si.className = 'nomark'; };
>>> var b = function() {
>>> if (si.value == '') {
>>> si.className = '';
>>> }
>>> };
>>> si.onfocus = f;
>>> si.onblur = b;
>>> if (!/[&?]p=[^&]/.test(location.search)) {
>>> b();
>>> } else {
>>> f();
>>> }
>>> }
>>> })();
>>> </script>
>>> <!-- search -->
>>> </div>
>>> <ul id="gnavi">
>>> <li><a href="http://www.jma.go.jp/">ホーム</a></li>
>>> <li><a href="http://www.jma.go.jp/jma/menu/menuflash.html">防災情報</a></li>
>>> <li><a href="http://www.jma.go.jp/jma/menu/menureport.html" class="on">各種データ・資料</a></li>
>>> <li><a href="http://www.jma.go.jp/jma/menu/menuknowledge.html">知識・解説</a></li>
>>> <li><a href="http://www.jma.go.jp/jma/menu/menuabout.html">気象庁について</a></li>
>>> <li><a href="http://www.jma.go.jp/jma/menu/menulinks.html">案内・申請</a></li>
>>> </ul>
>>> </div>
>>></div>
>>><!--header end --> <div id="contents_area2">
>>> <div id="ncontents2">
>>> <!-- pankuzu menu -->
>>> <div class="clearfix">
>>> <ul class="breadcrumb2">
>>> <li><a href="http://www.jma.go.jp/">ホーム</a> > </li>
>>> <li><a href="http://www.jma.go.jp/jma/menu/menureport.html">各種データ・資料</a> > </li>
>>> <li>過去の気象データ・ダウンロード</li>
>>> </ul>
>>> </div>
>>><script type="text/javascript">
>>><!--
>>>function TigilError() {
>>> return true;
>>>}
>>>window.onerror = TigilError;
>>>window.localStorage.setItem('errFlag', "1");
>>>-->
>>></script>
>>><ul class="pagelink">
>>> <li><a href="http://www.data.jma.go.jp/risk/obsdl/index.php">メニューページに戻る</a></li>
>>></ul>
>>><p>ブラウザの戻るボタンで戻り、もう一度やり直してください</p>
>>> </div> </div>
>>> <div id="footer_area">
>>> <div id="nfooter">
>>> <p>気象庁:〒100-8122東京都千代田区大手町1-3-4 代表電話:03-3212-8341</p>
>>> <ul>
>>> <li><a href="http://www.jma.go.jp/jma/kishou/info/coment.html">気象庁ホームページについて</a></li>
>>> </ul>
>>> </div>
>>></div> </div>
>>> </body>
>>></html>
>>>
>>>
>>>>匿名 さん:
>>>>
>>>>というか、すでにお送りしていますね。
>>>>wiresharkを使った解析の動画です。あれを見て、まずは、PHPSESSIDを取得できるリクエストを見つけることからかと思います。
>>>>あと、PHPSESSIDが無効になったあとそのPHPSESSIDを送ったらどういうレスポンスが返って来ているのか?そこをもっと知りたいです。
>>>>
>>>>
>>>>
>>>>>小川慶一 さん:
>>>>>レスポンスヘッダーの中身が以下なのですが、PHPSESSIDが見当たりません。
>>>>>何かアプローチに問題がありそうでしょうか?
>>>>>
>>>>>Cache-Control: max-age=600
>>>>>Date: Thu, 16 Apr 2015 11:14:29 GMT
>>>>>Pragma: no-cache
>>>>>Content-Length: 910
>>>>>Content-Type: "text/x-comma-separated-values"
>>>>>Expires: 0
>>>>>Server: Apache
>>>>>Content-Disposition: attachment; filename="data.csv"
>>>>>Content-Transfer-Encoding: binary
>>>>>MS-Author-Via: DAV
>>>>>X-Content-Type-Options: nosniff
>>>>>X-Powered-By: PHP/5.3.3
>>>>>
>>>>>>匿名 さん:
>>>>>>
>>>>>>レスポンスヘッダーで新しいPHPSESSIDを受け取ったら次のリクエストではそれを使う、というコードになると思います。
>>>>>>それで実装してみてください。
>>>>>>
>>>>>
>>>>
>>>
>>
>