Как можно авторизовать nodejs бота на форуме под vbulletin?

Здравствуйте!

Я, вроде, и гуглил на эту тему, но результаты мне трудно понять. В основном, про авторизацию пишут как про вещь на стороне сервера, а используется в качестве кода php.

У меня другая задача. Нужно написать бота, который будет авторизоваться на форуме с движком vBulletin, а потом парсить некоторые странички под указанным аккаунтом.

Как можно авторизоваться ботом? В каком виде и как отправляются данные с клиента на сервер с информацией об авторизации? Я видел, что используются заголовки http-запроса, но не могу в этом быть уверен. В общем, полный нуб в этом вопросе. Буду благодарен, если кто-нибудь даст почитать о том, как вообще происходит общение сервера и уже авторизованного клиента.
  • Вопрос задан
  • 3034 просмотра
Пригласить эксперта
Ответы на вопрос 3
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Ну сам nodejs не очень для этого подходит, хотя могу ошибаться.

Я бы посоветовал смотреть в сторону серверного браузера.
Что-то вроде Фантом.js
Но есть более высокоуровневые(удобне работать со страницами и вообще) оболочки на основе фантома, например Каспер.

Вот совсем простое что-то и недавно вышедшее Nightmarejs
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
В очень примитивном случае, авторизация для клиента работает так:
- пользователь отправляет данные формы в POST запросе. То есть данные записываются в тело запроса, не в заголовки заметте.
- если говорить о PHP, то при вызове функции session_start (или автоматически если выставлено в php.ini) создается файл сессии (опять же может храниться и в памяти в реддисе каком, как настроят) и пользователю присваивается кука с идентификатором сессии. Эту самую куку сэтят через заголовки ответа:
Set-Cookie: name=value
Затем при каждом запросе на сервер вам нужно будет эти куки так же отправлять в заголовках, иначе сервер подумает что вы новый чувак и будет создавать для вас новую сессию.

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

Но увы это лишь самый распространенный способ авторизации, насколько я помню в том же IPB обычно сессии дополнительно привязывались к вашему IP и куча всего еще, типа отдельных токенов в URI но я честно уже не припомню, давно уже не работал с этими штуками.

В вашем случае самым простым решением было бы вооружиться phantomjs и просто автоматизировать действия пользователя. Все эти вещи как сохранение и хэндлинг кук по идее оно будет делать за вас. Вам лишь нужно будет прописать последовательность действий. Так же будет намного проще парсить.
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
А готовые модули смотрели? roboto, crawler, simplecrawler?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы