HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 01.06.2020, 13:53
back.DEV
Познающий
Регистрация: 16.07.2018
Сообщений: 71
С нами: 4120021

Репутация: 63
По умолчанию

На сайте сервера arizona-rp.com есть вот такая тема
Цитата:
Сообщение от Спойлер  

EOajpJm.pngback.DEV · 1 Июн 2020 в 12:53' data-fancybox="lb-post-505947" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="/proxy.php?image=https%3A%2F%2Fi.imgur.com%2FEOajpJ m.png&hash=370d8f46c1e04c3f4019e45d937e4953" style="cursor: pointer;" title="EOajpJm.png">




Так вот я делаю запрос к сайту для получения вот этого куки


HTML:





Код:
document.cookie="R3ACTLB=eebdbfd51ddb46a72b4326036ed39945 ; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/";setTimeout("location.href='https://arizona-rp.com:443/mon/fraction/8/1';",5000);


Получаю я его вот таким образом:

JavaScript:





Код:
let
cookie
;
// хранение куки
getOnline
(
)
async
function
getOnline
(
)
{
await
needle
.
get
(
'https://arizona-rp.com'
,
function
(
err, response
)
{
try
{
cookie
=
response
.
body
.
split
(
"R3ACTLB="
)
[
1
]
.
split
(
" ;"
)
[
0
]
;
console
.
log
(
cookie
)
;
}
catch
(
err
)
{
console
.
log
(
err
)
;
}
}
)
;
/* потом я делаю запрос опять к этому сайту и уже с использованием этого куки для получения инфы с сайта*/
// Делаю я это таким образом:
await
needle
.
get
(
'https://arizona-rp.com/mon/fraction/8/1'
,
function
(
err, response
)
{
try
{
console
.
log
(
response
.
body
)
;
}
catch
(
err
)
{
console
.
log
(
err
)
;
}
}
)
;
}
)
;


Каким образом я во втором запросе могу заюзать этот куки, чтобы мне response.body выводился именно уже с сайта, а не с инфой которая на скрине под спойлером.

Юзаю библиотеку needle.
 
Ответить с цитированием

  #2  
Старый 01.06.2020, 14:00
Azller Lollison
Познавший АНТИЧАТ
Регистрация: 20.07.2017
Сообщений: 1,292
С нами: 4639746

Репутация: 183


По умолчанию

я конечно нихуя не жсер но разве ты не должен в заголовках передать куку а не просто спарсить и засейвить ее в переменную?
 
Ответить с цитированием

  #3  
Старый 01.06.2020, 14:02
back.DEV
Познающий
Регистрация: 16.07.2018
Сообщений: 71
С нами: 4120021

Репутация: 63
По умолчанию

Цитата:
Сообщение от Azller Lollison  

я конечно нихуя не жсер но разве ты не должен в заголовках передать куку а не просто спарсить и засейвить ее в переменную?
я в прошлой библиотеке requestify делал именно так как сейчас и передавал как-то через header и всё работало, но она тупит, эта библиотека более стабильно работает, вот и думаю как это реализовать с этой библиотекой

В прошлой библиотеке вот так передавал:

JavaScript:





Код:
requestify
.
get
(
'https://arizona-rp.com'
,
{
cookies
:
{
R3ACTLB
:
cookie
}
}
)
.
then
(
function
(
response
)
)
// и т.д и т.п


В этой я так понял по другому все работает.
 
Ответить с цитированием

  #4  
Старый 01.06.2020, 14:04
Azller Lollison
Познавший АНТИЧАТ
Регистрация: 20.07.2017
Сообщений: 1,292
С нами: 4639746

Репутация: 183


По умолчанию

Цитата:
Сообщение от Maks_Fletcher  

я в прошлой библиотеке requestify делал именно так как сейчас и передавал как-то через header и всё работало, но она тупит, эта библиотека более стабильно работает, вот и думаю как это реализовать с этой библиотекой
передай в массиве вторым аргументом ее

JavaScript:





Код:
var
options
=
{
compressed
:
true
,
follow
:
10
,
accept
:
'application/vnd.github.full+json'
}
needle
.
get
(
'api.github.com/users/tomas'
,
options
,
function
(
err, resp, body
)
{
// body will contain a JSON.parse(d) object
// if parsing fails, you'll simply get the original body
}
)
;


пример с гита либы https://github.com/tomas/needle#cust...header-deflate
 
Ответить с цитированием

  #5  
Старый 01.06.2020, 14:19
back.DEV
Познающий
Регистрация: 16.07.2018
Сообщений: 71
С нами: 4120021

Репутация: 63
По умолчанию

Если я правильно понял то всеравно возвращает ту же страницу первую.

JavaScript:





Код:
getOnline
(
)
async
function
getOnline
(
)
{
await
needle
.
get
(
'https://arizona-rp.com'
,
function
(
err, response
)
{
try
{
cookie
=
response
.
body
.
split
(
"R3ACTLB="
)
[
1
]
.
split
(
" ;"
)
[
0
]
;
console
.
log
(
cookie
)
;
}
catch
(
err
)
{
console
.
log
(
err
)
;
}
}
)
;
const
options
=
{
compressed
:
true
,
follow
:
10
,
accept
:
cookie
}
await
needle
.
get
(
'https://arizona-rp.com/mon/fraction/8/1'
,
options
,
function
(
err, response
)
{
try
{
console
.
log
(
response
.
body
)
;
}
catch
(
err
)
{
console
.
log
(
err
)
;
}
}
)
;
}


Вывело мне с первой функции в консольку вот это куки которое оно взяло со страницы и во второй функции вывело уже всю эту страницу которая на скрине выше была.
 
Ответить с цитированием

  #6  
Старый 01.06.2020, 14:21
Azller Lollison
Познавший АНТИЧАТ
Регистрация: 20.07.2017
Сообщений: 1,292
С нами: 4639746

Репутация: 183


По умолчанию

cookie: cookie а не аццепт, ты не шаришь в хттп заголовках?

GitHub - tomas/needle: Nimble, streamable HTTP client for Node.js. With proxy, iconv, cookie, deflate & multipart support.

Nimble, streamable HTTP client for Node.js. With proxy, iconv, cookie, deflate & multipart support. - tomas/needle

github.com


вот тут пишется короче
 
Ответить с цитированием

  #7  
Старый 01.06.2020, 14:34
back.DEV
Познающий
Регистрация: 16.07.2018
Сообщений: 71
С нами: 4120021

Репутация: 63
По умолчанию

решил проблему, немного посмотрел

Решение:

const options = {

compressed: true,

follow: 10,

cookies: {R3ACTLB: cookie}

}
 
Ответить с цитированием

  #8  
Старый 02.06.2020, 07:26
Livarka
Участник форума
Регистрация: 27.08.2017
Сообщений: 143
С нами: 4584912

Репутация: 83
По умолчанию

Цитата:
Сообщение от Maks_Fletcher  

решил проблему, немного посмотрел
Решение:
const options = {
compressed: true,
follow: 10,
cookies: {R3ACTLB: cookie}
}
GitHub - duy13/vDDoS-Protection: Welcome to vDDoS, a HTTP(S) DDoS Protection Reverse Proxy. Thank you for using!

Welcome to vDDoS, a HTTP(S) DDoS Protection Reverse Proxy. Thank you for using! - duy13/vDDoS-Protection

github.com


вот тебе сурс защиты самого стабильного хостинга
 
Ответить с цитированием

  #9  
Старый 21.10.2020, 18:58
Philipp Zelinski
Новичок
Регистрация: 20.10.2020
Сообщений: 5
С нами: 2929979

Репутация: 3
По умолчанию

Предлагаю использовать axios:

Получение необходимого куки:





Код:
const
{
get
}
=
require
(
'axios'
)
;
async
function
getCookie
(
url
)
{
// Запрашиваем HTML у сайта
const
res
=
await
get
(
url
)
;
const
isSuccess
=
res
&&
res
.
status
===
200
&&
res
.
data
;
if
(
!
isSuccess
)
throw
new
Error
(
'Неудачный запрос'
)
;
// Проверяем наличие необходимого куки в странице
if
(
!
res
.
data
.
includes
(
'R3ACTLB'
)
)
return
null
;
const
foundCookie
=
res
.
data
.
split
(
'R3ACTLB='
)
[
1
]
.
split
(
' ;'
)
[
0
]
;
if
(
!
foundCookie
)
throw
new
Error
(
'Ошибка при поиске куки на странице'
)
;
return
foundCookie
;
}


Для получения онлайна можно использовать функцию из моей библиотеки:

Получение онлайна:





Код:
const
{
getFractionPlayers
}
=
require
(
'@nieopierzony/core'
)
;
// Получение списка игроков во фракции
(
async
(
)
=>
{
const
serverID
=
8
;
const
fractionID
=
1
;
// Использую URL форума, т.к. на основном сайте эту систему отключили
const
players
=
await
getFractionPlayers
(
serverID
,
fractionID
,
{
headers
:
{
Cookie
:
`R3ACTLB=${await getCookie('http://forum.arizona-rp.com')}`
,
}
,
}
)
;
console
.
log
(
players
)
;
// => [
//      { id: '1', nickname: 'Skezy_Sparta', rank: 1, online: false },
//      { id: '2', nickname: 'Langris_Lout', rank: 3, online: true },
//      ... 24 more items
//    ];
}
)
(
)
;


На основном сайте аризоны уже убрали ту систему и для входа на сайт, куки не требуется, но все же.
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.