Найти - Пользователи
Полная версия: Помогите составить post запрос
Начало » Python для новичков » Помогите составить post запрос
1
Notan1310
Доброго времени суток дорогие форумчане. Такая проблема. Нужно лайкнуть пост в фотостране. Использую Grab. Но почему то не лайкается.
Вот кусок пост запроса из снифера HTTPFox:
viewTarget=viewer&viewPlace=community.profile&context=YTowOnt9&noCycling=true&ownerId=332295&ajax=1&pinId=452931651&_fs2ajax=1
В коде я его оформил так:
value = {
        'viewTarget':'viewer',
        'viewPlace':'community.profile',
        'context':'YTowOnt9',
        'noCycling':'true',
        'ownerId':'332295',
        'ajax':'1',
        'pinId':'452931651',
        '_fs2ajax':'1',
        }
Header я оформил так :
headers = {
'(Request-Line)':'GET / HTTP/1.1',
'Host':'fotostrana.ru',
'User-Agent' : 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:34.0) Gecko/20100101 Firefox/34.0',
'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language' : 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding' : 'gzip, deflate',
'Referer' : 'http://fotostrana.ru/public/post/332295/452931651/',
'Cookie' :'',
'Connection' : 'keep-alive'
}

Собственно сам код:
# -*- coding: utf-8 -*-
from grab import Grab
import time, random
import logging
logger = logging.getLogger('grab')
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)
headers = {
           '(Request-Line)':'GET / HTTP/1.1',
           'Host':'fotostrana.ru',
           'User-Agent' : 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:34.0) Gecko/20100101 Firefox/34.0',
           'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
           'Accept-Language' : 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
           'Accept-Encoding' : 'gzip, deflate',
           #'Referer' : 'http://fotostrana.ru/public/post/332295/452931651/',
           'Cookie' :'',
           'Connection' : 'keep-alive'
           }
            
value = {
        'viewTarget':'viewer',
        'viewPlace':'community.profile',
        'context':'YTowOnt9',
        'noCycling':'true',
        'ownerId':'332295',
        'ajax':'1',
        'pinId':'452931651',
        '_fs2ajax':'1',
        }
g = Grab(headers = headers)
g.setup(hammer_mode=True, hammer_timeouts=((2, 5), (10, 15), (20, 30)))
g.go('http://fotostrana.ru/signup/login/', log_file='outtest.html')
g.choose_form(1)
g.set_input("user_email", '*****')
g.set_input("user_password", '******')
g.submit()
g.setup(post=value)
g.go('http://fotostrana.ru/pin/add-like/')

Ошибка вываливается в outlog.html
{"ret":0,"errors":[{"data":{"text":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430."},"callback":"unknownError"}]}

Как мне все таки лайкнуть этот пост? Ошибка выше как я понял это ошибка сервера.
terabayt
ну вот это “\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.” означает
“Ошибка на стороне сервера”
а что такое context? вы уверены что он всегда одинаковый
перезагрузите страницу и посмотрите еще раз через HTTPFox
Notan1310
Да. Context одинаковый получается. Я лайкнул другой пост параметры поста только меняются и все
viewTarget=viewer&viewPlace=community.profile&context=YTowOnt9&noCycling=true&ownerId=332295&ajax=1&pinId=453097528&_fs2ajax=1

den4ik
Используй Selenium c PhantomJS.
Notan1310
Я так уже делаю. Если использовать прокси, то очень неудобное управление получается. Плюс долго. Все таки мне кажется post get запросом можно быстрее оформить все это дело.
alex925
Notan1310
Как капчу при входе на сайт обошёл?
Notan1310
alex925
Notan1310Как капчу при входе на сайт обошёл?

Не выскакивает. Только на мобильной версий постоянно появляется
den4ik
Ковыряй post/
Notan1310
den4ik
Ковыряй post/
Я же и прошу мне помочь. Встал именно на этом месте. Знаний не хватает
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