Форум сайта python.su
Доброго времени суток. Не удается проити простую авторизацию с 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)
Офлайн
Помогите пожалуйста сообразить. Вот этот кодес все таки заполняет поля 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)
Офлайн
как пример
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)
Офлайн
вроде нормально заходит
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
Офлайн
Не заходит. Не знаю почему. У меня голова начинает кипеть. На другие сайты заходит таким способом. Этим нет. Только если 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')
Офлайн
'fedoron****0mail.ru'
точно данные верно ввели?
Офлайн
Не выкидывает никаких ошибок просто форма почему то не заполняется. И кнопка если клацается на регистрацию перекидывает. Помогитее пожалуйста. Ничего не понимаю вроде раньше все нормально работало. Сейчас именно с фотостранной беда. Хоть post get хоть send_input
Офлайн
Да
Офлайн
минут десять назад сайт был на “ремонте”
ну а сейчас у меня заходит, зарегался там специально
'fedoron****0mail.ru'
показалось что 0 вместо собаки
Отредактировано Kasta_neda (Янв. 18, 2015 22:00:32)
Офлайн
Я просто пароль так скрыл и логин. Я из рабочего скрипта, но с другой библиотеки копирую копирую этот логин и пароль плюс с браузера выхожу. Там еще может быть так что вы заходите на страницу не авторизированным пользователем и может показаться что авторизированы
Офлайн