SQLの窓

2010年06月20日


Python3.1 : クッキーを保持して二つの URL にアクセスする

保存されるクッキーの形式は、「関連する記事」の、PHP でテストした cURL が保存する
形式とほぼ同じでした

▼ Python3.1
------------------------------------------------------------------------------------
    # Netscape HTTP Cookie File
    # http://www.netscape.com/newsref/std/cookie_spec.html
    # This is a generated file!  Do not edit.

localhost.local	FALSE	/web/test	FALSE		data	1234
localhost.local	FALSE	/web/test	FALSE		lightbox	winofsql

▼ PHP の cURL
------------------------------------------------------------------------------------
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

localhost	FALSE	/web/test/	FALSE	0	data	1234
localhost	FALSE	/web/test/	FALSE	0	lightbox	winofsql
------------------------------------------------------------------------------------

urllib.request.build_opener には、複数のハンドラを設定できます。
必要に応じて追加していく形になります( BASIC 認証や プロキシ等 )

HTTP ヘッダーの追加は、マニュアルにこっそり書かれていますが、
User-Agent: Python-urllib/3.1 は常にセットされるらしく、追加は
append メソッドで行います

関連する記事

VBScript/PHP クッキーデータが自動的に受け渡しされる事のテスト
VB.net : HttpWebRequest と HttpWebResponse でクッキーのやり取り
Python3.1 : mixi ボイスへ投稿
0004.py ( utf8n )
#! /usr/bin/env python3.1

import urllib.request
import http.cookiejar

# **********************************************************
# Cookie handling for HTTP clients
# python312.chm::/library/http.cookiejar.html
# **********************************************************
cj = http.cookiejar.MozillaCookieJar()
opener = urllib.request.build_opener(
			urllib.request.HTTPCookieProcessor( cj )
		 )

# **********************************************************
# 最初の呼び出し
# ※ cookiejar を設定した opener で読みだす
# **********************************************************
try:
	response = opener.open("http://localhost/web/test/sv1.php")
except urllib.error.URLError as e:
	print(e)
	exit()

html = response.read()

# **********************************************************
# サーバーからの http ヘッダ
# **********************************************************
print( response.info() )

# **********************************************************
# 内容
# **********************************************************
print( html.decode() )



# **********************************************************
# 2回目の呼び出し
# ※ cookiejar を設定した opener で読みだす
# ※ ヘッダーの追加は、opener.addheaders
# **********************************************************
opener = urllib.request.build_opener(
			urllib.request.HTTPCookieProcessor( cj )
		 )
try:
	opener.addheaders.append(('test-header', 'Python3.1'))
	response = opener.open("http://localhost/web/test/sv2.php")
except urllib.error.URLError as e:
	print(e)
	exit()

html = response.read()

# **********************************************************
# サーバーからの http ヘッダ
# **********************************************************
print( response.info() )

# **********************************************************
# 内容
# **********************************************************
print( html.decode() )

# **********************************************************
# クッキーを保存
# ※ cj.load( "ファイルのパス" ) が可能です
# **********************************************************
cj.save( "cookie_100620.sav", ignore_discard=True, ignore_expires=True )




posted by lightbox at 2010-06-20 19:34 | Python | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり