1

Web サイトにログインして、自動クリーンアップ ジョブを実行しようとしています。

ログインする必要があるサイトは次のとおりです: http://site.com/Account/LogOn

Pythonを使用してWebサイトにログインするなど、スタックで見つけたさまざまなコードを試しました(ただし、この行で立ち往生しています

session = requests.session(config={'verbose': sys.stderr}) 

私の JetBeans は、私'verbose'が何かをする必要があることを私に言うのは好きではありませんが、何を正確に説明しません)。

私もこれを試しました:ブラウザ シミュレーション - Python ですが、これもうまくいきません。

誰でも私を助けることができますか?すべての回答に感謝します。前もって感謝します。

PS: 私は 2 週間前に Python の学習を開始したので、私の「プロ」レベルのアンダーサンディングについて詳しく説明してください :)

- - - - - - - - - - - - -アップデート: - - - - - - - - - - - - ------

なんとかログインできたのですが、別のページに移動しようとしてボタンを押そうとすると「ログインしてください!」と表示されます。

私はこのコードを使用します:

url = 'http://site.com/Account/LogOn'
values = {'UserName': 'user',
          'Password': 'pass'}

data = urllib.urlencode(values)
cookies = cookielib.CookieJar()

opener = urllib2.build_opener(
    urllib2.HTTPRedirectHandler(),
    urllib2.HTTPHandler(debuglevel=0),
    urllib2.HTTPSHandler(debuglevel=0),
    urllib2.HTTPCookieProcessor(cookies))

response = opener.open(url, data)
the_page = response.read()
http_headers = response.info()
print response

ログインした後、メニュー値を変更する必要があります。HTML では次のようになります。

<select id="menu_uid" name="menu_uid" onchange="swapTool()" style="font-size:8pt;width:120px;">
<option value="1" selected>MyProfile</option>
...
<option value="6" >DeleteTree</option>

しかし、次のような URL を作成すれば、直接行うこともできます: http://site.com/Account/management.html?Category=6&deltreeid=6&do=Delete+Tree

では、この URL を作成して送信するにはどうすればよいでしょうか。再度、感謝します!

4

2 に答える 2

4

頭を悩ませずに次を使用してrequestsください。

url = 'http://site.com/Account/LogOn'
values = {'UserName': 'user',
          'Password': 'pass'}

r = requests.post(url, data=values)
# Now you have logged in

params = {'Category': 6, 'deltreeid': 6, 'do': 'Delete Tree'}
url = 'http://site.com/Account/management.html'

# sending cookies as well
result = requests.get(url, data=params, cookies=r.cookies)
于 2013-02-25T20:01:55.000 に答える
1

まず第一に

/Account/LogOnに POST リクエストを送信します。フィールドはUserNameおよびPasswordと呼ばれます。

次に、python の httplib を使用して HTTP リクエストを実行できます

http://docs.python.org/2/library/httplib.html

(最後に POST の実行方法の例があります)。

次に、おそらく HTTP ヘッダー内にセッション Cookie を含む応答を取得します。その Cookie を変数に保存し、それを後続のすべてのリクエストで送信して認証する必要があります。

于 2013-02-25T14:51:16.037 に答える