2009-11-19 3 views
2

Я делаю скрипт автозапуска с помощью механизации python.механизатор не может войти в систему python

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

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

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

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

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

Это поможет, если вы разместите минимальный пример кода, который не работает, чтобы другие могли начать с этого в качестве основы. –

+0

привет спасибо за ваш ответ! Я загрузил свой сценарий здесь http://paste.pocoo.org/show/151607/ Если какая-либо помощь очень ценится – paul

+2

Очень опытный пользователь SO попросил вас всего две недели назад, чтобы не использовать внешние службы [pastebin]. Вставьте соответствующую часть кода прямо в свой пост. Таким образом, вещи остаются в одном месте, ваш код, как гарантируется, будет доступен до тех пор, пока SO существует, а люди меньше беспокоятся => более высокий шанс ответов. – paprika

ответ

1

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

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

+0

спасибо за ваш ответ ... но проблема в том, что я не знаю, как обращаться с javascript или другим .. – paul

+0

Я думаю, что лучший способ - создать объект 'Browser' и использовать его' reload() 'метод. –

Смежные вопросы