не может войти в систему python - PullRequest
2 голосов
/ 19 ноября 2009

Я делаю скрипт авто-входа с использованием mechanize python.

До того, как меня использовали, механизировали без проблем, но www.gmarket.co.kr на этом сайте я не смог этого сделать.

всякий раз, когда я пытаюсь войти в систему, всегда возвращалась страница входа, даже с правильным идентификатором gmarket, пас, я не могу войти, и я видел подозрительное сообщение

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

Я думаю, что это связано с моей проблемой, но я точно не знаю, как с ней справиться. Вот пример кода и пройти тест для входа в систему

id: tgi177 pass: 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

1 Ответ

1 голос
/ 19 ноября 2009

mechanize не имеет возможности взаимодействовать с JavaScript. Вероятно, модуль spidermonkey поможет вам (у меня нет опыта с этим, но описание довольно многообещающе). Также вы можете выполнить такую ​​перезагрузку (например, Browser.reload() для этого конкретного случая) вручную, если это единственный сайт, у которого есть эта проблема.

Обновление : Быстрый просмотр вашей страницы показывает, что вы отправили на другой URL (по схеме https:). Посмотрите checkValid() функция JavaScript. Размещение в нем дает другой результат. Обратите внимание, что это похоже на домашнюю работу, которую вы должны сделать самостоятельно, прежде чем спрашивать.

...