LINUX.ORG.RU

Помогите получить https запрос к porfirevich

 , ,


0

1

Меня очень удивил бот Порфирьевич (https://porfirevich.ru/). Путем изучения кода сайта я нашел место, где отправляется запрос.

await fetch("https://pelevin.gpt.dobro.ai/generate/", {
    "credentials": "omit",
    "headers": {
        "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0",
        "Accept": "*/*",
        "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
        "Content-Type": "text/plain;charset=UTF-8"
    },
    "body": "{\"prompt\":\"раз два\",\"length\":30}",
    "method": "POST",
    "mode": "cors"
});

Мне было лень, я с помощью json_decode() и http_build_query() получил такую ссылку:

https://pelevin.gpt.dobro.ai/generate/?credentials=omit&headers%5BUser-Agent%5D=Mozilla%2F5.0+%28X11%3B+Linux+x86_64%3B+rv%3A78.0%29+Gecko%2F20100101+Firefox%2F78.0&headers%5BAccept%5D=%2A%2F%2A&headers%5BAccept-Language%5D=ru-RU%2Cru%3Bq%3D0.8%2Cen-US%3Bq%3D0.5%2Cen%3Bq%3D0.3&headers%5BContent-Type%5D=text%2Fplain%3Bcharset%3DUTF-8&body%5Bprompt%5D=%D0%A0%D0%B0%D0%B7+%D0%B4%D0%B2%D0%B0&body%5Blength%5D=30&method=POST&mode=cors

В ответ я получаю Method not allowed. Что я делаю не так? И возможно ли получить такое вообще? Ну и еще: Я - Семиклассник, я не дурак, но могу многое не понимать, заранее извиняюсь

"method": "POST"

При переходе по ссылке выполняется запрос типа GET, а Вам надо сделать запрос POST. Такой запрос невозможно выразить ссылкой. Также обратите внимание на то, что в словаре headers располагаются заголовки HTTP-запроса, которые не то же самое, что запрашиваемый адрес или тело (тело задано в поле body).

Попробуйте в web developer toolbar сделать на интересующем запросе «copy as cURL», получится командная строка, которая сделает такой же запрос.

anonymous ()
Ответ на: комментарий от anonymous

Спасибо, сделал такой код:

<?php
$req="curl 'https://pelevin.gpt.dobro.ai/generate/' \
  -H 'Connection: keep-alive' \
  -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' \
  -H 'Content-Type: text/plain;charset=UTF-8' \
  -H 'Accept: */*' \
  -H 'Origin: https://porfirevich.ru' \
  -H 'Sec-Fetch-Site: cross-site' \
  -H 'Sec-Fetch-Mode: cors' \
  -H 'Sec-Fetch-Dest: empty' \
  -H 'Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7' \
  --data-binary '{\"prompt\":\"Раз два\",\"length\":30}' \
  --compressed";
$x=shell_exec($req);
vvediteima ()

Хороший сайт, спасибо.

Столман. Ты только не обижайся, но я… Неужели ты не понимаешь, что нам с тобой на всю жизнь оставаться вместе? А твой маньяк-хахаль ничего вокруг не видит. И для него я действительно дурак набитый. Но я не кретин.

chenbr0 ()
await fetch('https://pelevin.gpt.dobro.ai/generate/', { method: 'POST', body: JSON.stringify({ prompt: 'кровь, сперма и говно', length: 50 }) }).then(r => r.json())
{replies: Array(3)}
replies: Array(3)
0: " – это не национальная идея? Правильно? А что такое национальная идея – это совсем не «кровь, сперма и говно»? А? Вот скажи. Как ты сам думаешь?"
1: " из внутренних полостей человека сливаются в канализацию и фильтруются из нее в канализацию, где она рассеивается и исчезает в канализации с таким же, примерно, эффектом, как выбросы углекислоты в замурованный воздух"
2: ", если тебя смущает, что я называю все это красивым термином – сексизм. Я могу назвать как угодно. Могу назвать какой угодно пол. Единственное, что имеет значение, это то, что происходит внутри – желания и страх."
length: 3
__proto__: Array(0)
__proto__: Object
tz4678 ★★ ()