Уведомления

Группа в Telegram: @pythonsu

#1 Июль 25, 2017 19:02:53

SkyTiger
Зарегистрирован: 2017-07-25
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с тонкостями request'a

Друзья, помогите разобраться!
Палками сильно не бейте - я молодой и зеленый питоновод.

Есть такая задача - при помощи request'a заполнять форму на сайте и отправлять.
И все шло ничего пока не оказалось, что в паре ключ : значение - “ключ” содержит квадратные скобки.

 default[password]: 123
И в итоге мой код выглядит так:
 PASSWORD = '123'
keys_data = dict(default[password]=PASSWOD, ...)
Разумеется ничего не работает - выдает ошибку: SyntaxError: keyword can't be an expression
Пытался экранировать квадратные скобки - тут тоже беда, не смог найти как это делается, точнее нашел - где-то писали, что надо поставить доп. открывающую скобку - не помогло, дублирующие скобки - не помогли, знак “\” - не помог.

Что делать?

Отредактировано SkyTiger (Июль 25, 2017 19:04:36)

Офлайн

#2 Июль 25, 2017 20:10:42

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Помогите новичку с тонкостями request'a

давайте угадаю

 keys_data = {
    'default': {
        'password': PASSWORD,
    },
}



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Июль 26, 2017 12:41:19

SkyTiger
Зарегистрирован: 2017-07-25
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с тонкостями request'a

JOHN_16
давайте угадаю
Не прокатило, не угадали
Название параметра в форме имеет именно такой вид:
 default[password]
Как я понял, именно в таком виде он и должен передаваться, только как это сделать в питоне?

Офлайн

#4 Июль 26, 2017 13:44:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Помогите новичку с тонкостями request'a

  
>>> d = {'abc[def]': 'ghi'}
>>> d
{'abc[def]': 'ghi'}
>>> d['abc[def]']
'ghi'
>>>



Офлайн

#5 Июль 26, 2017 14:13:08

SkyTiger
Зарегистрирован: 2017-07-25
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с тонкостями request'a

py.user.next
Простите, не понял

Офлайн

#6 Июль 26, 2017 15:18:15

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Помогите новичку с тонкостями request'a

SkyTiger
Простите, не понял
Почитай что-нибудь.

SkyTiger
я молодой и зеленый питоновод
Громко сказано, если не понимаешь даже самые базовые типы питона.

Я думаю, тебе даже это не надо делать (то, что ты пытаешься сделать), потому что ты не понимаешь, что тебе надо передать. Словари обычно в таких вещах не участвуют.



Офлайн

#7 Июль 26, 2017 16:14:51

SkyTiger
Зарегистрирован: 2017-07-25
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с тонкостями request'a

py.user.next
Громко сказано, если не понимаешь даже самые базовые типы питона.
Простите, я Вас этим обидел? Это так сильно бесит, когда люди не знают элементарных вещей и просят помощи? Интересно, для чего тогда раздел “для новичков тут завели?”
py.user.next
Я думаю, тебе даже это не надо делать
Вы могли бы делать такие предположения, если бы работали со мной и знали почему я это делаю и для чего.
Если я не понятно объясняю, что мне нужно, об этом можно сказать несколько иначе, чем так (грубо, я бы сказал).

Объясняю:
Допустим мне нужен скрипт авотризации на сайте.
Я захожу на этот сайт, жму “F12”, вкалдка “network', и галочку ”Preserve Log“.
Ввожу свои ”Логин“ и ”Пароль“ и жму на кнопочу ”Войти“.
Далее я ищу в колонке ”Method“ - ”Post“, жму, листаю в самый низ и нахожу пункт ”Form Data" и вижу следующее:
 login:123
password:321
Соответственно мой код выглядит так:
 url = 'http://my.largestporncollection.com'
LOGIN = '123'
PASSWORD = '321'
c.get(url)
login_data = dict(login=LOGIN, password=PASSWORD)
c.post(url, data=login_data)
Работает как часы!
Но что делать, если параметры “login” и “password” прописаны так:
 default[login]:132
default[password]:321

Офлайн

#8 Июль 26, 2017 23:59:27

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Помогите новичку с тонкостями request'a

SkyTiger
Но что делать, если параметры “login” и “password” прописаны так:
default[login]:132
default[password]:321
  
login_data = {'default[login]': LOGIN, 'default[password]': PASSWORD}

Надеюсь, ты не будешь сейчас спрашивать, где тут dict, потому что dict тут - это вот эти фигурные скобки. И это знает любой новичок, хоть что-то прочитавший.

SkyTiger
Интересно, для чего тогда раздел “для новичков тут завели?”
Так ты не новичок, не дорос до новичка, потому что решил, ничего не читая, написать какую-то программу (хоть и на несколько строк, но всё равно программу). Ты же говоришь “я питоновод”, мы это воспринимаем по-другому, питоновод хотя бы базовые типы, базовые операции знает. И тут ты выдаёшь такую проблему, что не понимаешь, что ключи словаря являются строками обычными.



Отредактировано py.user.next (Июль 27, 2017 00:05:25)

Офлайн

#9 Июль 27, 2017 16:30:33

SkyTiger
Зарегистрирован: 2017-07-25
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с тонкостями request'a

py.user.next
login_data = {'default': LOGIN, 'default': PASSWORD}
Вот теперь спасибо! Все работает как надо.
Советы Ваши учту.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version