Уведомления

Группа в Telegram: присоединиться | Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Дек. 15, 2016 01:10:49

danis19
Зарегистрирован: 2016-12-15
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Как выполнить задачу? (requests)

Нужна помощь. Цель - получить через прогу сигну (обработанную картинку) с сайта http://shkuragaming.ru/signa . С помощью Charles выяснил, что при нажатии кнопки на сайте “сделать сигну”, на сервер отправляется POST пакет с данными “text1=txt1&text2=txt2”, где txt1 и txt2 - данные, которые мы ввели. После нажатия, открывается страница с готовой сигной.
Но программа выдает первоначальную страницу, то есть без готовой сигны. В чем может быть проблема? Буду очень благодарен!
Вот мой код:

 # -*- coding: utf-8 -*-

import requests


with requests.Session() as c:
c.post(url='http://shkuragaming.ru/signa', data="text1=Kjk&text2=Rtr")
final = c.get('http://shkuragaming.ru/signa')
print(final.content)

Офлайн

#2 Дек. 17, 2016 09:06:21

python335
Зарегистрирован: 2016-10-19
Сообщения: 58
Репутация: +  -8  -
Профиль   Отправить e-mail  

Как выполнить задачу? (requests)

Тут socket надо использовать а не requests

Офлайн

#3 Дек. 17, 2016 12:52:02

scidam
Зарегистрирован: 2016-06-15
Сообщения: 205
Репутация: +  28  -
Профиль   Отправить e-mail  

Как выполнить задачу? (requests)

А где в документации к requests сказано, что можно так как вы передавать параметры POST-запросу.
В общем, до рабочего состояния, минимальные изменения - следующие:

 import requests
with requests.Session() as c:
    final=c.post(url='http://shkuragaming.ru/signa', data={'text1':'Kjk','text2':"Rtr"})
    print(final.content)
Далее, можно вытащить путь картинки сгенерированной, например, BeatifulSoup`ом, или здесь – в данном конкретном случае – можно и регулярное выражение подходящее придумать (хотя регулярками не парсят html).

Офлайн

#4 Дек. 17, 2016 23:55:34

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

Как выполнить задачу? (requests)

python335
какой нахрен сокет? Вы о чем вообще думаете? Там HTTP запросы обычные.
danis19
Вы, как мне кажется, не понимаете что делаете - вы создаете сессию, делаете ПОСТ запрос, делаете следом ГЕТ запрос и в результатах последнего что то пытаетесь найти. Все эти действия и в таком порядке лишены смысла.
Ошибку Вам уже указалscidam Нужно документацию читать используемого инструмента.



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

Офлайн

#5 Дек. 22, 2016 15:44:40

DesSolo
Зарегистрирован: 2016-12-22
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Как выполнить задачу? (requests)

 import requests
import re
class GetSigna:
    def __init__(self, Name1, Name2):
        response = requests.post('http://shkuragaming.ru/signa', data={'text1': Name1, 'text2': Name2})
        print(re.findall(r'http://shkuragaming.ru/signas/signs/\d+.\w+', response.text)[0])
A = GetSigna('hop', 'lalala')

Отредактировано DesSolo (Дек. 22, 2016 15:46:04)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version