@ru_python

Страница 6434 из 9768
ivan
04.09.2018
23:38:27
Я не ванга, мне надо ответ видеть

400 ошибка мало о чем говорит

X_Selent
04.09.2018
23:38:43
.
Я бы с радостью показал но почему то выдает ошибки

ivan
04.09.2018
23:39:07
Какую

Google
X_Selent
04.09.2018
23:39:33
Traceback (most recent call last): File "<pyshell#85>", line 1, in <module> response.text NameError: name 'response' is not defined

ivan
04.09.2018
23:39:50
-_-

r.text r.json()

Неужели так сложно догадаться

X_Selent
04.09.2018
23:40:30
r.text r.json()
эх тупанул блин(

ivan
04.09.2018
23:40:59
Я ж для примера response написал

X_Selent
04.09.2018
23:41:55
Теперь понял

текст щас покажу, а json сыпет ошибки

ivan
04.09.2018
23:42:24
Ну это нормально

X_Selent
04.09.2018
23:43:28
Ну это нормально
Это значит что jspn в данный момент не передается?

ivan
04.09.2018
23:43:36
Да

json отдаётся, если б это API какая-нибудь была

А так, оно по сути страницу загружает тебе Так что text

Google
ivan
04.09.2018
23:46:01
Не удалось проверить переданные данные.

Ну, это мне тоже мало о очем говорит

X_Selent
04.09.2018
23:46:52
Ну, это мне тоже мало о очем говорит
Какие еще я могу данные предоставить?

ivan
04.09.2018
23:46:54
Там формочка с аутентификацией на сайте?

У меня просто не заходит туда

Если там форма логин\пароль То auth=... тут не работает Тут надо каким-нибудь selenium(модуль такой) это делать

Crypt
04.09.2018
23:49:24
в тело запроса скинь как полагается логин пароль

открывай HTML и смотри как поля называются, это надо POST-запросу в body затолкать, предварительно сериализовав под url

X_Selent
04.09.2018
23:50:37
в тело запроса скинь как полагается логин пароль
Я незнаю как в пайтоне правильно оформлять тело запроса, в bas делал так _csrf=[[CSRF]]&LoginForm%5Busername%5D={{Login}}&LoginForm%5Bpassword%5D={{Password}}&LoginForm%5BrememberMe%5D=0

ivan
04.09.2018
23:52:19
В requests.post передаешь параметр data

data={'Название_формы_для_логина': user, 'Название_Формы_для_пароля': passw}

Эти названия форм можно найти в HTML на страничке

X_Selent
04.09.2018
23:54:36
Эти названия форм можно найти в HTML на страничке
Сейчас попробую спасибо. А не скажите в каких случаях используется auth= если не с формами?

ivan
04.09.2018
23:55:38
Сейчас попробую спасибо. А не скажите в каких случаях используется auth= если не с формами?
https://ru.wikipedia.org/wiki/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%D0%B5#%D0%91%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D1%8F_%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F

Google
X_Selent
05.09.2018
00:00:41
Извиняюсь это ввел в меня в замашательство что из этого является названием для поля ввода? <input type="text" id="loginform-username" class="form-control" name="LoginForm[username]" placeholder="Ник или электронная почта">

ivan
05.09.2018
00:00:59
name

X_Selent
05.09.2018
00:01:03
LoginForm[username]? Экранизировать не нужно?

ivan
05.09.2018
00:01:09
Странно он выглядит здесь правда

X_Selent
05.09.2018
00:01:48
Вот и я про тоже, по этому в замешательстве

ivan
05.09.2018
00:02:31
Ну, здесь я хз Но попробуй

Alexandr
05.09.2018
00:03:00
Ну а сделать сабмит и посмотреть, что улетело?

X_Selent
05.09.2018
00:03:01
ок

Ну а сделать сабмит и посмотреть, что улетело?
Посмотрел улетело это LoginForm%5Busername%5D

видимо urlencode переделывает [ ]

Alexandr
05.09.2018
00:07:39
А если открыть консоль разработчика и смотреть запрос?

В браузере консоль

Типа разом и урл, и тело, и хедеры. И все в одном месте.

X_Selent
05.09.2018
00:10:12
Alexandr
05.09.2018
00:10:46
Видимо не переделывает []

X_Selent
05.09.2018
00:12:05
Видимо не переделывает []
Хм я пробую щас так отправить r = requests.post(url, data={'LoginForm[username]':(user), 'LoginForm[password]':(passw)}, headers=headers, data=json.dumps(payload))

Выдает ошибку

keyword argument repeated

уже вижу где ошибка)

Alexandr
05.09.2018
00:13:17
User и passwd зачем в скобках?

Google
X_Selent
05.09.2018
00:13:18
повторный аргумент data

User и passwd зачем в скобках?
скобки убрал, всеравно повторный аргумент, как все передать в data? чтоб небыло повторного?

Alexandr
05.09.2018
00:16:23
Ну у тебя два словаря

dict(a:1, b:2, **dict2)

X_Selent
05.09.2018
00:17:55
Ну у тебя два словаря
Эм... извини я пока далек от этого, вижу что повторный аргумент, как исправить?

Alexandr
05.09.2018
00:18:40
Маленько тебя обманул

X_Selent
05.09.2018
00:19:16
В чем?

Alexandr
05.09.2018
00:19:49
dict(pass='wee', login='wee', **dict2)

X_Selent
05.09.2018
00:21:57
Эх всеравно не понял как исправить(

Alexandr
05.09.2018
00:22:03
Это в 3.4 проканает и выше

А что у тебя вообще в data?

В payload точнее

X_Selent
05.09.2018
00:23:22
Alexandr
05.09.2018
00:24:21
Ну а запихать логин и пароль в payload?

X_Selent
05.09.2018
00:24:26
token = soup.find('input', {'name':'_csrf'})['value'] headers = {'Host': 'jugl.net', 'Connection': 'keep-alive', 'Cache-Control': 'max-age=0', 'Origin': 'https://jugl.net', 'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Referer': 'https://jugl.net/login', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7'} r = requests.get(url, headers=headers) payload = {'_csrf':(token)} r = requests.post(url, data={'LoginForm[username]':user, 'LoginForm[password]':passw}, headers=headers, data=json.dumps(payload)) print(r.status_code) print(r)

Надо попробовать)

Alexandr
05.09.2018
00:27:37
data={'LoginForm[username]':user, 'LoginForm[password]':passw, **payload}

А вторую дату вообще убрать. Но это только на новых версиях питона прокатит

X_Selent
05.09.2018
00:31:03
У меня крайняя версия

ууу еще лучше SSL: CERTIFICATE_VERIFY_FAILED теперь проблема c SSL

Google
X_Selent
05.09.2018
00:32:21
r = requests.get(url, headers=headers) payload = {'_csrf':(token), 'LoginForm[username]':user, 'LoginForm[password]':passw} r = requests.post(url, headers=headers, data=json.dumps(payload)) print(r.status_code) Я вот так щас сделал

Alexandr
05.09.2018
00:33:09
payload = {'_csrf':token, 'LoginForm[username]':user, 'LoginForm[password]':passw} r = requests.post(url, headers=headers, data=json.dumps(payload)) print(r.status_code) print(r)

Только там точно json в data?

X_Selent
05.09.2018
00:34:03
блин что ж у меня за привычка переменные обрамлять в скобки

да, только scrf передается в json остальное нет

Alexandr
05.09.2018
00:35:03
Эээ

X_Selent
05.09.2018
00:36:24
хм?

Вот чую, что где то мелкая ошибка, а убивает столько времени

Alexandr
05.09.2018
00:37:44
А что говорит?

X_Selent
05.09.2018
00:38:44
на SSL ругается http://skrinshoter.ru/s/050918/yqA00vPC

Crypt
05.09.2018
00:42:32
X_Selent
05.09.2018
00:44:10
Хм странна, почему SSL не работает из коробки

Egor
05.09.2018
00:47:21
на SSL ругается http://skrinshoter.ru/s/050918/yqA00vPC
http://docs.python-requests.org/en/master/user/advanced/?highlight=ssl#ssl-cert-verification

X_Selent
05.09.2018
00:56:23
Попробовал отключить проверку, все равно ответ 400(

Egor
05.09.2018
00:58:27
Попробовал отключить проверку, все равно ответ 400(
а ты подумай. Еще раз прочти ошибку, если не получается воспользуйся гугл-переводчиком

Egor
05.09.2018
01:01:02
Ты на свой код еще раз посмотри внимательно. Мой запрос requests срабатывает как надо. Также глянь на время в системе, на версию пакета.

Страница 6434 из 9768