ПРОГРАМИСТ, УБЕЙ ПРОГРАМИСТАДвач, есть один python3 и requests. Какого хуя кириллица в POST-запросе преобразуется в url-encoded-фразу? Конкретно на сосаче – отправляю строку с кириллицей, и она постится как вот это: https://2ch.hk/b/res/169571254.html#169592902 (%D0%A5%D1%83%D0%B9%0A). Помогите!
>>169593252 (OP)Скинь еще этих розовых собачьих писюнов, да выпей чаю
>>169593381Вот, няша. Ответишь на мой вопрос?
>>169593252 (OP)как запрос отправляешь? строчку в студию
>>169593608Да просто блядь.requests = requests.post('https://2ch.hk/makaba/posting.fcgi', data=payload, headers=data, cookie=cookies)В data строчка с текстом поста – обычная строка типа str. Headers – юзерагент и пр. хуйня, cookie – пасскод. Пост отправляется нормально, но вот кириллица проёбывается.
>>169593824https://2ch.hk/abu/res/42375.html#49947Ты хорошо это посмотрел?
testтест
>>169594074как решил?
>>169594063Да хорошо, пост отправляется, говорю же. Только кириллица проёбывается.
>>169593544Видос зачетный, это дог же?
>>169594234Да
>>169594177>жея, может, ебанутый, но в том посте test и тест
>>169594324Да это не мой пост. Мой вот https://2ch.hk/b/res/169571254.html#169592902
>>169594358Там было написано "Хуй". А оно преобразовалось в url-encoded
>>169594358попробуй передавать JSON, а не строку
>>169594400все же кажется, что у тебя с header'ом проблемесы
>>169593252 (OP)Воу, а разве питоний научился кирилицу поддерживать?Ему же вроеде даже в имени папки для расположение проги кирилицу нельзя ставить
>>169594550>расположение вообще всегда умел. Только надо строки как str = u'строка'В юникод переведет.
>>169594637Если питон третий, то такого не надо, там юникод по умолчанию.
>>169594451Сейчас я чай попью и скину тебе
headers = {'Connection': 'keep-alive', 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1', 'Accept-Encoding': 'gzip', 'Content-Type': 'multipart/form-data'} cookies = {'passcode_auth': USERCODE} post = s.post('https://2ch.hk/makaba/posting.fcgi', data=payload, headers=headers, cookies=cookies)Вот.
>>169596022https://ru.wikipedia.org/wiki/Multipart/form-data
>>169596157>https://ru.wikipedia.org/wiki/Multipart/form-dataв этой строчке проблема?
>>169596157Content-type пофикси, иными словами :)
>>169596269А что там не так-то, няш?
>>169596388на вики написано же, что все не-аски символы отправляются как url-encoding. Попробуй указать там utf-8 или что-то такое
>>169596503Content-Type: text/html;charset=utf-8вроде такого. Но вроде АПИ вообще JSON принимает, но ошибка явно тут
test тест
>>169596934И как решилось?)
>>169596970Не решилось, просто с браузера отправил чтобы посмотреть что там в запросе должно быть.
>>169597256Держи в курсе, няш, самому же интересно
test%0A%D1%82%D0%B5%D1%81%D1%82
>>169597428Вот такая же хуйня у меня. Без хедерсов тоже.
>>169597428Похоже, не вышло
>>169597556Ну и как же??
>>169597532отправь в JSON=формате данные, как в посте обезьяны написано
>>169597618Покажи код пожалуйста.
>>169593252 (OP)Urlencoded же, тебе надо multipart/form-data. Рой в сторону заголовка content-type, где-то там косяк или в кодировании в urlencoded. Думаю тут и вся проблема, не?php-макака
>>169597692Был бы пасскод, анонче, я бы тебе весь скрипт закинул. Но его нет, а ебаться с обработкой капчи - нахуй не хочу. В requests.post(json=JSON.parse({comment: "коммент"})Соответственн, надо передать остальные параметры также
>>169593544Еще есть?
>>169597902У тебя есть телеграм?
Алсо, мультипарт по любому надо, без него пикчи и видео не приложишь.>>169597820
>>169598069Никогда не мог понять как отправить пикчу. Расскажешь?
Блядь!
Я разобрался, сейчас напишу в чем дело. Внезапно, requests слишком умная и в данном случае творит хуйню.
>>169598772Добра тебе, няша. жду ответа
>>169598772Жду.
Если вам интересно, зачем мне эта хуйня - я отправляюсь в места не столь отдаленные на продолжительное время и пишу себе сонсольный клиент для сосача. Так как там очень плохой интернет и мало трафика, то хотя бы текстовый сосач - то, что мне нужно.
>>169598906А какая статья?
>>169598996228 ч.1, расхаживал по району ночью и рисовал надписи с номером барыги. По камерам пропалили моё лицо и мобильник.
>>169598906Есть моар второго с оппоста?
>>169599093Но ведь это вандализм, а не 228?
>>169599189https://2ch.hk/b/res/169581885.html
>>169599204Судья так не считает
>>169598124Я сейчас с телефона и давно не занимался таким, может память изменять. Но суть мультипарта такая, там заголовки те же по сути, content lenght обязателен в нем длина тела, разница в теле, разница том, что в content-type надо указать ещё строчку boundary=XXX, где XXX случайная строка, она нужна как разделитель, поясню ниже. В теле идет название поля (email, text и т.д.) и на следующей строке (\r\n) идет содержимое, потом идет разделитель, новая строка и т.д.. С пикчами точно также, просто разделитель нужен чтобы указать что пикча кончилась и начинается следующее поле, кодировать пикчи во что-то не надо, отправляется как есть, просто тело надо оформить соотвествующее. Гугли, в интернете все разжевано, там не сложно.Вот вроде по теме: https://habrahabr.ru/sandbox/103022/?mobile=no
На скрине фрагмент кода класса requests.models.PreparedRequest, метода prepare_body (https://github.com/requests/requests/blob/e4fc3539b43416f9e9ba6837d73b1b7392d4b242/requests/models.py#L495)Как видно, если ты передал data (дикт, но не строку), но не передал files, эта сука делает body = self._encode_params(data) и там вызывает urlencode на твоих данных. И запрос уходит как application/x-www-form-urlencoded, а не как multipart/form-data.Решение - грязный хак. Передавать хуйню в files. Например, files={'': (None, '')}
>>169599354Профессионально питонирую уже 4 года, а на такую хуйню не натыкался. Но зато разобрался быстро, видимо не самый хуевый я кодер.
>>169599354Пиздося. А ежели я картинку прикрепить захочу?
>>169599478Тогда передавай в files свою картинку, а не хуйню. Все норм будет.
>>169599532Ебанись. Аноне, спасибо тебе. Всё сработало. Куда нефть высылать?
На нахуй.Ебать.ТЕСТ!TESTrequests соси
Хуяк
>>169599672То есть ты тупо строку в files кидаешь?
>>169597941Фото членика отправишь? :3
>>169599732post = s.post('https://2ch.hk/makaba/posting.fcgi', data=payload, cookies=cookies, files={'': (None, '')})Вот так у меня. Лишь бы в files то-то было, вот в чём хуйня.
>>169599780Хотел тебе дать юзеркод-кукис для теста, но уже не нужно.
>>169599253Пиздец, это же запрещено на дваче, где блядь моча??
>>169599807У меня такое чувство, что post'ом надо JSON передавать :D
>>169599872Зоо не запрещено. А цп там нет.
>>169599907Нет, не нужно было. Вот сейчас с этой хуйнёй в files кирилица нормально передаётся
>>169599951Я не спорю, имел в виду "по канону" :D
>>169600058Ну я не видел такого в сосачеклиентах, да и на самом сайте 2ch.hk с браузера всё передается без json
>>169600170А представь какой ад на говне мамонта вроде 4ч.
>>169593252 (OP)А ты хочешь убить и выебать свою Еотову, чмоха прогроммист?
>>169600238У 4ч даже описания api официального нет вроде
>>169600255У меня нет никакой еотовой. Вырубай свой маняпроектор
>>169593252 (OP)>Харкач>2018>искать тут айтишникаСовсем уже пизданулся, лучше в одноклассниках на стене обьявление повесь, скорее найдется
>>169600287Пиздец параша. И это при рыночке и всей хуйне сидят говно жрут. Хотя гмаил тоже говно в сравнении я яндекс почтой и всё равно жрут.
>>169599615Принимаю нефть в биткоинах.1PWReFCN257e1XRUbULW35xfXLyBAPLw4e
>>169600369Так мне помогли уже, чего ты тут развыёбывался?
>>169600314Ужэ задушил и выебал, а потом зарезал и снова выебал, чмох?
>>169600397Не пользуюсь этим МММ 2018, извини ^#>>169600380Да это обычная нормалблядская борда, там одни спермотоксикозники, даже в тематике. Обычному сосачеру нехуй там делать. Мне, например, омерзительно там сидеть
>>169600528Нет, я никого не убивал, не душил и не резал.
>>169599325Всё без этого разделителя отправилось.post = s.post('https://2ch.hk/makaba/posting.fcgi', data=payload, cookies=cookies, files={'test.jpg': open('test.jpg', 'rb')})
>>169599325Всё без этого разделителя отправилось.post = s.post('https://2ch.hk/makaba/posting.fcgi', data=payload, cookies=cookies, files={'teсt.жpg': open('teсt.жpg', 'rb')})
>>169600574Чтобы выгоды добица - прогроммист всегда готов крестица!
>>169600939>>169600901Ну там у тебя там просто более высокий уровень, ты там не пишешь сырой запрос. Там за тебя всё сделает либа или как оно там называется?
>>169601156Это называется "высокоуровневый петушара"
>>169601232Запости тест с картинкой
Хуй залупа борода
Ебло
post = s.post('https://2ch.hk/makaba/posting.fcgi', data=payload, headers=headers, cookies=cookies, files={'test.jpg': open('test.jpg', 'rb')})