Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 14, 2014 01:17:41

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

Постинг через Grab

Доброго времени суток дорогие форумчане. Сегодня я столкнулся с такой проблемой. При созданий цикла

for board in boardOk.readLInes():
    g.go(board)
    g.set_input('поле', 'test')
Не открывает страницу, однако так работает
[code python]

g.go('http://m.ok.ru/doskabaraxolka')
g.set_input('tfr.text', autoscanerText)
g.submit('button_save')

[/code]

При применений for . Вывод в out.html часть url doskabaraxolka?_i_loc_rdr=on Не могу понять где неправильно работает. Смысл считывания url с файла у меня везде такой же, но при работе с этой либой такая беда.
Я еще новичjк!!!
Вся беда именно в месте for когда начинает считывать url. Хочу сделать все стабильно для запуска через crone. Если заместо for все вручную копировать я сума сойду!!!

Отредактировано Notan1310 (Сен. 14, 2014 01:24:13)

Офлайн

#2 Сен. 14, 2014 01:22:06

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Постинг через Grab

Notan1310
Код в теги по-человечески оберни, новичёк.



Офлайн

#3 Сен. 14, 2014 01:24:04

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Постинг через Grab

Notan1310
Не открывает страницу, однако так работает
Что значит не открывает? Что пишет-то?

взял страницу
g.go(board)

заполнил поле
g.set_input('поле', test)

И дальше что?



Офлайн

#4 Сен. 14, 2014 01:29:22

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

Постинг через Grab

for board in boardOk.readlines():
    g.go(board)
    g.set_input('tfr.text', 'test')
    g.submit('button_save')
Вот ошибка
Traceback (most recent call last):
File "/home/sung/workspace/posterOK/posterOK.py", line 19, in <module>
g.set_input('tfr.text', 'test')
File "/usr/local/lib/python2.7/dist-packages/grab/ext/form.py", line 124, in set_input
self.choose_form_by_element('.//*[@name="%s"]' % name)
File "/usr/local/lib/python2.7/dist-packages/grab/ext/form.py", line 359, in choose_form_by_element
self._lxml_form = found_form if found_form is not None else forms[0]
IndexError: list index out of range

Отредактировано Notan1310 (Сен. 14, 2014 01:29:39)

Офлайн

#5 Сен. 14, 2014 01:30:23

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Постинг через Grab

Notan1310
Вот ошибка
Ну ёмаё, новичёк, с этого бы и начинал.

Судя по коду, на странице нету ни одной формы.

input твой в форму завёрнут?



Отредактировано Budulianin (Сен. 14, 2014 01:39:06)

Офлайн

#6 Сен. 14, 2014 01:39:37

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

Постинг через Grab

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

file:///doskabaraxolka?_i_loc_rdr=on
Такой страницы нет
Вот кусок из файла с url
http://m.ok.ru/doskaobavsibirtsevo
http://m.ok.ru/doskabaraxolka
http://m.ok.ru/sellsee
http://m.ok.ru/docka.obevlenii.mockov.cankt.p
http://m.ok.ru/doska12
http://m.ok.ru/group47057062396087
http://m.ok.ru/obyavleniya1
python их видит как положено и time.sleep() Выставлял

В цикл правильный адрес передается, но так получается что в итоге он обрезается

Отредактировано Notan1310 (Сен. 14, 2014 01:46:20)

Офлайн

#7 Сен. 14, 2014 01:43:27

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Постинг через Grab

Notan1310
file:///doskabaraxolka?_i_loc_rdr=on
Это путь к файлу у тебя на диске.

Дак ты посмотри, что в цикле передаётся.



Отредактировано Budulianin (Сен. 14, 2014 01:44:33)

Офлайн

#8 Сен. 14, 2014 01:49:26

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

Постинг через Grab

http://m.ok.ru/doskaobavsibirtsevo

http://m.ok.ru/doskabaraxolka

Traceback (most recent call last):
File "/home/sung/workspace/posterOK/posterOK.py", line 20, in <module>
g.set_input('tfr.text', 'test')
File "/usr/local/lib/python2.7/dist-packages/grab/ext/form.py", line 124, in set_input
self.choose_form_by_element('.//*[@name="%s"]' % name)
File "/usr/local/lib/python2.7/dist-packages/grab/ext/form.py", line 359, in choose_form_by_element
self._lxml_form = found_form if found_form is not None else forms[0]
IndexError: list index out of range
Два адреса нормально проходят, но скрип не постит по ним.

Офлайн

#9 Сен. 14, 2014 01:59:54

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Постинг через Grab

Notan1310

Выведи страницу перед заполнением инпута и ты увидишь, что там нет формы.



Офлайн

#10 Сен. 14, 2014 02:12:54

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

Постинг через Grab

А может ли быть проблема с кукисами или с авторизацией? Все указывает аккаунт неавтаризованным становиться если например в цикле все это дело начинает работать. Или еще думаю может с кодировкой что файла. До этого была беда наподобие. Только в url вставлялся utf код UBUBUB в начале каждой строки

Проблема с считыванием файла. Реализовал все списком. Не так удобно но все же работает. Хотелось бы все таки решить проблему, ибо аналоги моих скриптов нормально работают тем же методом, но без этой либы. Но а тут какая то непонятная ерунда.

Отредактировано Notan1310 (Сен. 14, 2014 02:42:57)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version