2009-11-19 5 views
2

기계화 파이썬을 사용하여 자동 로그인 스크립트를 만들고 있습니다.기계화가 파이썬에 로그인 할 수 없습니다.

기계화에 사용하기 전에 아무런 문제없이이 사이트에서 www.gmarket.co.kr을 만들 수 없었습니다. 난 항상 로그인을 시도 할 때마다

내가 로그인 할 수 없습니다 페이지를 통과, 심지어 올바른 G 마켓 ID로 반환 된 로그인하고 나는 내 문제와이 관련된 생각 몇 가지 의심스러운 메시지

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

을 보았다,하지만 돈 어떻게 처리해야하는지 정확히 알지 못합니다. 다음은 샘플 ID이며

로그인 테스트 ID를 전달합니다 통과 tgi177 : tk1047

사람이 많이 미리 감사 감사 나를 도울 수 있다면

CODE :

# -*- 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 
+2

다른 사람들이 기본으로 시작할 수 있도록 작동하지 않는 코드의 최소 예를 게시하면 도움이됩니다. –

+0

답장을 보내 주셔서 감사합니다. 여기에 내 스크립트를 업로드했습니다 http://paste.pocoo.org/show/151607/ 도움이 필요하면 – paul

+2

매우 숙련 된 사용자가 2 주 전에 외부 [pastebin] 서비스 사용을 피하도록 요청했습니다. 코드의 관련 부분을 게시물에 붙여 넣으십시오. 이렇게 물건을 한 곳에두면, SO가 존재하고 사람들이 덜 귀찮아 질 때까지 코드를 사용할 수 있습니다. – paprika

답변

1

mechanize 아무튼 ' JavaScript와 상호 작용할 수있는 능력이 있습니다. 아마도 spidermonkey 모듈이 도움이 될 것입니다. (필자는 그 경험이 없지만 설명은 아주 유망합니다.) 또한이 문제가 발생한 유일한 사이트 인 경우 이러한 재로드 (예 : Browser.reload())를 수동으로 처리 할 수 ​​있습니다.

업데이트 : 귀하의 페이지를 통한 빠른 검토는 귀하가 다른 URL (https : scheme)을 제출했음을 보여줍니다. checkValid() 자바 스크립트 기능을 통해보세요. 그것에 게시하면 다른 결과가 나타납니다. 이것은 숙제처럼 보입니다. 묻기 전에 스스로해야합니다.

+0

답장을 보내 주셔서 감사합니다 ...하지만 문제는 어떻게 자바 스크립트 또는 기타 .. 처리하는 방법을 모르겠다. – paul

+0

가장 좋은 방법은'브라우저'개체를 만들고 그것의'reload() '메소드를 호출합니다. –

관련 문제