

あるサービスにプログラム上からPythonでログインしたいと思っています。  
しかし、「動作環境が対象外です」というページに飛ばされてしまいます。  
User-Agentを偽装しても同じようなことが起こってしまいます。  
User-Agent以外で環境を判定しているような箇所はないのでしょうか?  
必要な情報は全て、POSTで送っています。  
ちなみにリクエストを送る先は.jspファイルです。  
送っているデータはUserid, passwordでUserIdは8桁の数字、passwordは8文字の英数字です。  
ちなみにこのサービスの実装がどうなっているのか、私はわかりません。  
Statusは200 OKを返しています。

[code]

    
    import urllib.request
    import urllib.parse
    
    post_data = {"UserId": 12345678, "Password": "password"}
    encoded_data = urllib.parse.urlencode(post_data).encode()
    req = urllib.request.Request("http://example.com/login", 
                                 encoded_data,
                                 headers={"User-Agent": "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"})
    res = urllib.request.urlopen(req)
    res_read = res.read().decode("shift-jis") # res_readに"動作環境が対象外です"の文字が含まれています。
    
    
[/code]

必要な動作環境は以下の通りです。

Windows Vista SP2以上  
・Internet Explorer 7  
・Internet Explorer 8  
・Internet Explorer 9  
・Google Chrome

Windows 7  
・Internet Explorer 8  
・Internet Explorer 9  
・Internet Explorer 10  
・Internet Explorer 11  
・Google Chrome

Windows 8 (デスクトップUI)  
・Internet Explorer 10

Windows 8.1 (デスクトップUI)  
・Internet Explorer 11

Mac OS X 10.6  
・Safari 5.1.7

Mac OS X 10.7  
・Safari 5.1.7


CC BY-SA 3.0
2015-02-27T10:42:56.110
7223
2015-03-06T12:53:05.813
2015-03-02T10:03:38.750
5246
5246
question
python http jsp
ブラウザの動作環境の判定


> User-Agent以外で環境を判定しているような箇所はないのでしょうか?

ブラウザやOSを判別したい **だけ**
ならUAで事足りることも多いですが、それだけを理由に「動作環境が対象外です」というエラーが表示されるとは限りません。

ですから、エラーが出る原因となる箇所は **いくらでも考えられます**
。また、これまでに質問者さんが提示している情報では、それが具体的に何かまではわかりません。

## どうやって調べるか

どのように実装されているかわからない以上、あなたがブラウザを操作してログインできた、という時に行われた通信が一番の参考資料になります。これを各種ツールで覗き見ることになるでしょう。

  * ブラウザのデバッグ機能（Chromeでいえば開発者ツールのNetworkタブ）
  * Fiddlerなどのデバッグプロキシ
  * Wiresharkなどのパケットキャプチャツール

* * *

というのが一般的な回答になると思いますが、個人的な想像としては・・・。

ログイン画面なのにIDとパスワードだけしかPOSTしないなんてのはセキュリティがーって言われそうなので、POSTするパラメータも足りてない気がします。`<input
type="hidden">` とかHTMLに書かれていませんか？CookieにもセッションIDとか入ってそうです。


CC BY-SA 3.0
2015-03-06T12:53:05.813
7556
2015-03-06T12:53:05.813
8000
7223
answer