0

私は答えを探してみましたが、何も見つかりませんでした - だから私はここで尋ねています:

コードをデバッグして、機能していないものを確認しようとしています。私がやろうとしているのは、Firefox を使用して Web ページにログオンしたことです。要求/応答ヘッダーをキャプチャするために Firebug を使用しています。このページは、ログイン後、約 2/3 レベルの深さです。

Cookie と要求ヘッダーを複製して、Python コードを介してこの 3 番目のページを読み込もうとしています。しかし、サーバーは、リクエストが認証されていないクライアントからのものであることを何らかの方法で認識し、ログイン ページで応答します。私の知る限り、唯一のクッキーは.ASPXAUTHクッキーと、私が検証したASP.NET_SessionIdが私のpythonコードから渡されていることです。

だから私の質問:リクエストが認証されたクライアントから来ているとサーバーを模倣/騙すにはどうすればよいですか。

追加メモ: a) Firefox 経由で Web ページにログオンするためと、Python コードを実行するために、同じマシンを使用しています。したがって、ローカル IP は同じです。b) Python リクエストをレプリケートしようとしているのと同時に Web ページにログオンしています (つまり、セッションがアクティブです)。

4

1 に答える 1

0

問題は Cookie ベースの認証にあるようです。速度がそれほど問題にならない場合、または Web サーバーが動作するために JavaScript を必要とする場合、最も簡単な解決策は Selenium を使用することです。https://pypi.python.org/pypi/selenium

from selenium import webdriver
import time

browser = webdriver.Firefox()  # Start a firefox instance in "WebDriver" mode
browser.get("http://www.example.com")  # load the page
assert "Example Domain" in browser.title  # make sure that we have the right page
elem = browser.find_element_by_tag_name("a")  # find the only link
elem.click()  # click on the link
time.sleep(0.2)  # Let the page load
# etc. etc.

フォームに記入したり、特定のコンテンツが表示されるのを待ったりすることができます。

于 2013-07-30T08:20:18.057 に答える