Найти - Пользователи
Полная версия: Постинг через Grab
Начало » Центр помощи » Постинг через Grab
1 2
Notan1310
Доброго времени суток дорогие форумчане. Сегодня я столкнулся с такой проблемой. При созданий цикла
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 все вручную копировать я сума сойду!!!
Budulianin
Notan1310
Код в теги по-человечески оберни, новичёк.
Budulianin
Notan1310
Не открывает страницу, однако так работает
Что значит не открывает? Что пишет-то?

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

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

И дальше что?
Notan1310
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
Budulianin
Notan1310
Вот ошибка
Ну ёмаё, новичёк, с этого бы и начинал.

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

input твой в форму завёрнут?
Notan1310
Я это и не могу понять. Все дело в том что если делать все без цикла, то все нормально отрабатывает. Однако если я добавляю цикл с этими урлами, то почему то обрезается. и получается вот такой кусок урла в 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() Выставлял

В цикл правильный адрес передается, но так получается что в итоге он обрезается
Budulianin
Notan1310
file:///doskabaraxolka?_i_loc_rdr=on
Это путь к файлу у тебя на диске.

Дак ты посмотри, что в цикле передаётся.
Notan1310
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
Два адреса нормально проходят, но скрип не постит по ним.
Budulianin
Notan1310

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

Проблема с считыванием файла. Реализовал все списком. Не так удобно но все же работает. Хотелось бы все таки решить проблему, ибо аналоги моих скриптов нормально работают тем же методом, но без этой либы. Но а тут какая то непонятная ерунда.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB