Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 19, 2015 11:07:06

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите составить post запрос

Доброго времени суток дорогие форумчане. Такая проблема. Нужно лайкнуть пост в фотостране. Использую 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"}]}

Как мне все таки лайкнуть этот пост? Ошибка выше как я понял это ошибка сервера.

Офлайн

#2 Янв. 19, 2015 11:52:14

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Помогите составить post запрос

ну вот это “\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.” означает
“Ошибка на стороне сервера”
а что такое context? вы уверены что он всегда одинаковый
перезагрузите страницу и посмотрите еще раз через HTTPFox



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Янв. 19, 2015 11:56:02

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите составить post запрос

Да. Context одинаковый получается. Я лайкнул другой пост параметры поста только меняются и все

viewTarget=viewer&viewPlace=community.profile&context=YTowOnt9&noCycling=true&ownerId=332295&ajax=1&pinId=453097528&_fs2ajax=1

Офлайн

#4 Янв. 19, 2015 19:00:47

den4ik
Зарегистрирован: 2014-07-20
Сообщения: 59
Репутация: +  4  -
Профиль   Отправить e-mail  

Помогите составить post запрос

Используй Selenium c PhantomJS.

Офлайн

#5 Янв. 19, 2015 19:13:02

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите составить post запрос

Я так уже делаю. Если использовать прокси, то очень неудобное управление получается. Плюс долго. Все таки мне кажется post get запросом можно быстрее оформить все это дело.

Офлайн

#6 Янв. 19, 2015 19:15:50

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Помогите составить post запрос

Notan1310
Как капчу при входе на сайт обошёл?

Офлайн

#7 Янв. 19, 2015 19:22:28

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите составить post запрос

alex925
Notan1310Как капчу при входе на сайт обошёл?

Не выскакивает. Только на мобильной версий постоянно появляется

Отредактировано Notan1310 (Янв. 19, 2015 19:23:26)

Офлайн

#8 Янв. 19, 2015 19:24:23

den4ik
Зарегистрирован: 2014-07-20
Сообщения: 59
Репутация: +  4  -
Профиль   Отправить e-mail  

Помогите составить post запрос

Ковыряй post/

Офлайн

#9 Янв. 19, 2015 19:28:12

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите составить post запрос

den4ik
Ковыряй post/
Я же и прошу мне помочь. Встал именно на этом месте. Знаний не хватает

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version