2

mechanize pythonを使用して自動ログインスクリプトを作成しています。

機械化する前は問題なかったのですがwww.gmarket.co.kr、このサイトではできませんでした。

ログインしようとするたびに、正しい gmarket id を使用しても常にログイン ページが返され、pass、ログインできず、疑わしいメッセージが表示されました

"<script language=javascript>top.location.reload();</script>"

これは私の問題に関連していると思いますが、正確な処理方法がわかりません。ログイン テスト用の ID とパスの例を次に示します。

id: tgi177 パス: tk1047

誰かが私を助けてくれるなら、事前に感謝します

コード:

# -*- coding: cp949 -*-
from lxml.html import parse, fromstring
import sys,os
import mechanize, urllib
import cookielib
import re
from BeautifulSoup import BeautifulSoup,BeautifulStoneSoup,Tag

try:

    params = urllib.urlencode({'command':'login',
                               'url':'http%3A%2F%2Fwww.gmarket.co.kr%2F',
                               'member_type':'mem',
                               'member_yn':'Y',
                               'login_id':'tgi177',
                               'image1.x':'31',
                               'image1.y':'26',
                               'passwd':'tk1047',
                               'buyer_nm':'',
                               'buyer_tel_no1':'',
                               'buyer_tel_no2':'',
                               'buyer_tel_no3':''

                               })
    rq = mechanize.Request("http://www.gmarket.co.kr/challenge/login.asp")
    rs = mechanize.urlopen(rq)
    data = rs.read()    


    logged_in = r'input_login_check_value'  in data                                    
    if logged_in:
        print ' login success !'  
        rq = mechanize.Request("http://www.gmarket.co.kr") 
        rs = mechanize.urlopen(rq)
        data = rs.read()   
        print data  

    else:
        print 'login failed!'
        pass
        quit()      
except:
    pass
4

1 に答える 1

1

mechanizeJavaScript と対話する機能がありません。おそらくspidermonkeyモジュールが役に立ちます (私はそれについての経験はありませんが、説明は非常に有望です)。Browser.reload()また、この問題を抱えている唯一のサイトである場合は、そのようなリロードを手動で処理することもできます (たとえば、この特定のケースの場合)。

更新: ページをざっと見てみると、他の URL (https: スキームを使用) に送信したことがわかります。checkValid()JavaScript 関数に目を通します。それに投稿すると、他の結果が得られます。これは、質問する前に自分でやらなければならない宿題のように見えることに注意してください。

于 2009-11-19T06:52:58.593 に答える