Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 18, 2015 10:10:29

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

Grab'e Авторизация

Доброго времени суток. Не удается проити простую авторизацию с Grab. Не понимаю в чем проблема. Не находит элементы и все хоть убей. В лог файле форма есть и интервал задержки указывал. Выдает ошибку что селектор ввода не найден.


Traceback (most recent call last):
File "main.py", line 29, in <module>
g.set_input(".//*[@id='userName']", 'fedorovna.tonya@mail.ru')
File "/usr/local/lib/python2.7/dist-packages/grab/ext/form.py", line 125, in set_input
elem = self.form.inputs[name]
File "/usr/lib/python2.7/dist-packages/lxml/html/__init__.py", line 946, in __getitem__
"No input element with the name %r" % name)
KeyError: 'No input element with the name ".//*[@id=\'userName\']"'

# -*- coding: utf-8 -*-
from grab import Grab
import time, random
headers = {
           'Host':'www.google.ru',
           'User-Agent' : 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:34.0) Gecko/20100101 Firefox/34.0',
           'Accept' : 'image/png,image/*;q=0.8,*/*;q=0.5',
           'Accept-Language' : 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
           'Accept-Encoding' : 'gzip, deflate',
           'Referer':'http://fotostrana.ru/',
           'Connection':'keep-alive',      
           }
g = Grab(headers=headers)
g.setup(hammer_mode=True, hammer_timeouts=((2, 5), (10, 15), (20, 30)))
g.go('http://fotostrana.ru/signup/login/', log_file='outtest.html')
time.sleep(3)
g.set_input(".//*[@id='user_email']", '********')
g.set_input(".//*[@name='user_password']",'*****')
g.submit(".//*[@id='loginPopupSubmitButton']")
print 'Авторизация прошла успешно'

Отредактировано Notan1310 (Янв. 18, 2015 10:19:25)

Офлайн

#2 Янв. 18, 2015 16:33:39

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

Grab'e Авторизация

Помогите пожалуйста сообразить. Вот этот кодес все таки заполняет поля login и пароль однако не нажимает кнопку. Обычным sendKeys не вводится. Мне бы просто кнопку нажать и все!

# -*- coding: utf-8 -*-
from grab import Grab
import time, random
import logging
logger = logging.getLogger('grab')
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)
headers = {
           '(Request-Line)':'GET / HTTP/1.1',
           'Host':'fotostrana.ru',
           'User-Agent' : 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:34.0) Gecko/20100101 Firefox/34.0',
           'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
           'Accept-Language' : 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
           'Accept-Encoding' : 'gzip, deflate',
           'Referer' : 'http://fotostrana.ru/signup/login/',
           'Cookie' :'',
           'Connection' : 'keep-alive'
           }
value = {
        'csrftkn':'a285ead63a6f684aece048fbc2f9969e',
        'user_email': '***onya@40mail.ru',
        'user_password':'i**uj9',
        'submitted':'1',
        'issetFields[]':'csrftkn',
        'issetFields[]':'user_email',
        'issetFields[]':'user_password', 
        'issetFields[]':'submitted',
        '_fs2ajax':'1'       
        }
g = Grab()
g.setup(hammer_mode=True, hammer_timeouts=((2, 5), (10, 15), (20, 30)))
g.go('http://fotostrana.ru/signup/login/', log_file='outtest.html')
time.sleep(3)
for elem in g.doc.select(".//*[@name='csrftkn']"):
    
    csrftkn = elem.attr('value')
    
value['csrftkn'] = csrftkn
g.setup(post=value)
g.request()
time.sleep(2)

Отредактировано Notan1310 (Янв. 18, 2015 16:34:18)

Офлайн

#3 Янв. 18, 2015 18:09:05

Kasta_neda
Зарегистрирован: 2014-06-08
Сообщения: 210
Репутация: +  6  -
Профиль   Отправить e-mail  

Grab'e Авторизация

как пример

from grab import Grab
g=Grab()
#print g.xpath_text('//*')
g.go("http://vk.com/")
g.set_input('email', 'xxxxxxxx@yandex.ru')
g.set_input('pass', 'xxxxxxx')
g.submit()
g.go("http://vk.com/friends?section=all")
print g.response.body

Отредактировано Kasta_neda (Янв. 18, 2015 18:09:27)

Офлайн

#4 Янв. 18, 2015 21:36:53

Kasta_neda
Зарегистрирован: 2014-06-08
Сообщения: 210
Репутация: +  6  -
Профиль   Отправить e-mail  

Grab'e Авторизация

вроде нормально заходит

from grab import Grab
g=Grab()
#print g.xpath_text('//*')
g.go("http://fotostrana.ru/signup/login/")
print g.form
g.choose_form(1)
g.set_input('user_email', 'xxxxxxxx@yandex.ru')
g.set_input('user_password', 'xxxxxxx')
g.submit()
g.go("http://fotostrana.ru/user/xxxxxxx/")
print g.response.body

Офлайн

#5 Янв. 18, 2015 21:55:15

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

Grab'e Авторизация

Не заходит. Не знаю почему. У меня голова начинает кипеть. На другие сайты заходит таким способом. Этим нет. Только если post запросом получается загнать Логин Пароль на кнопку хз не нажимается.

from grab import Grab
g=Grab()
#print g.xpath_text('//*')
g.go("http://fotostrana.ru/signup/login/", )
print g.form
g.choose_form(1)
g.set_input('user_email', 'fedoron****0mail.ru')
g.set_input('user_password', 'i***')
g.submit()
g.go("http://fotostrana.ru/user/79020867/", log_file='outtest2.html')

Офлайн

#6 Янв. 18, 2015 21:57:09

Kasta_neda
Зарегистрирован: 2014-06-08
Сообщения: 210
Репутация: +  6  -
Профиль   Отправить e-mail  

Grab'e Авторизация

'fedoron****0mail.ru'
точно данные верно ввели?

Офлайн

#7 Янв. 18, 2015 21:57:54

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

Grab'e Авторизация

Не выкидывает никаких ошибок просто форма почему то не заполняется. И кнопка если клацается на регистрацию перекидывает. Помогитее пожалуйста. Ничего не понимаю вроде раньше все нормально работало. Сейчас именно с фотостранной беда. Хоть post get хоть send_input



Офлайн

#8 Янв. 18, 2015 21:58:05

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

Grab'e Авторизация

Да

Офлайн

#9 Янв. 18, 2015 21:59:17

Kasta_neda
Зарегистрирован: 2014-06-08
Сообщения: 210
Репутация: +  6  -
Профиль   Отправить e-mail  

Grab'e Авторизация

минут десять назад сайт был на “ремонте”
ну а сейчас у меня заходит, зарегался там специально
'fedoron****0mail.ru'
показалось что 0 вместо собаки

Отредактировано Kasta_neda (Янв. 18, 2015 22:00:32)

Офлайн

#10 Янв. 18, 2015 22:04:08

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

Grab'e Авторизация

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

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version