Node.js | Парсинг сайта
   
 
 
 
 
  
 Серега , Ошибка парсинга данных: Failed to launch the browser process!
 Серега , Ошибка парсинга данных: Failed to launch the browser process!/root/.cache/puppeteer/chrome/linux-127.0.6533.88/chrome-linux64/chrome: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
TROUBLESHOOTING: https://pptr.dev/troubleshooting
Ошибка отправки сообщения: Не удалось разобрать данные с сайта.
а это со второго кода ошибка
Ошибка получения данных: port is not defined
Попытка 1 не удалась: Не удалось получить данные с сайта.
Ошибка получения данных: port is not defined
Попытка 2 не удалась: Не удалось получить данные с сайта.
Ошибка получения данных: port is not defined
Попытка 3 не удалась: Не удалось получить данные с сайта.
Ошибка парсинга данных: Не удалось получить данные с сайта.
 753830989 , нет всех библиотек
 753830989 , нет всех библиотек   
  
    
 753830989 , и используй рабочие проски
 753830989 , и используй рабочие проски   
  
    
javascript
sudo apt-get install -y libnss3 libatk-bridge2.0-0 libatk1.0-0 libcups2 libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libxss1 libxtst6 libnss3-toolsjavascript
const axios = require('axios');
const cheerio = require('cheerio');
const TelegramBot = require('node-telegram-bot-api');
const puppeteer = require('puppeteer');
const { token } = require('./key');
// Создаем экземпляр Telegram бота
const bot = new TelegramBot(token, { polling: true });
// URL сайта, который будем парсить
const url = 'https://trendcore.ru/'; // Замените на фактический URL
// Прокси сервер
const proxy = {
  host: 'your-proxy-server', // Замените на ваш прокси сервер
  port: 1234 // Замените на порт вашего прокси
};
// Настройки заголовков
const headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
  'Accept-Language': 'en-US,en;q=0.9',
};
// Функция для получения данных с сайта через прокси
async function fetchData() {
  try {
    const response = await axios.get(url, {
      headers,
      proxy,
      timeout: 30000 // Таймаут 30 секунд
    });
    return response.data;
  } catch (error) {
    console.error(`Ошибка получения данных: ${error.message}`);
    throw new Error('Не удалось получить данные с сайта.');
  }
}
// Функция для получения данных с повторными попытками
async function fetchDataWithRetry(retries = 3) {
  for (let attempt = 1; attempt <= retries; attempt++) {
    try {
      return await fetchData();
    } catch (error) {
      console.error(`Попытка ${attempt} не удалась: ${error.message}`);
      if (attempt === retries) throw error;
      await new Promise(resolve => setTimeout(resolve, 2000)); // Ожидание 2 секунды перед повторной попыткой
    }
  }
}
// Функция для парсинга таблицы
async function parseTable() {
  try {
    const html = await fetchDataWithRetry();
    const $ = cheerio.load(html);
    const result = [];
    $('table tr').each((_, element) => {
      const cells = $(element).find('td');
      if (cells.length >= 2) {
        const coin = $(cells[0]).text().trim();
        const level = $(cells[1]).text().trim();
        if (coin && level) {
          result.push({ coin, level });
        }
      }
    });
    if (result.length === 0) {
      console.warn('Таблица не содержит данных.');
    }
    return result;
  } catch (error) {
    console.error(`Ошибка парсинга данных: ${error.message}`);
    throw new Error('Не удалось разобрать данные с сайта.');
  }
}
// Функция для отправки сообщений
async function sendMessage(chatId, message) {
  try {
    await bot.sendMessage(chatId, message);
  } catch (error) {
    console.error(`Ошибка отправки сообщения: ${error.message}`);
  }
}
// Команда для вывода таблицы
bot.onText(/\/table/, async (msg) => {
  const chatId = msg.chat.id;
  try {
    const data = await parseTable();
    if (data.length > 0) {
      let message = 'Монета | До уровня, %\n';
      message += '----------------------\n';
      data.forEach(item => {
        message += `${item.coin} | ${item.level}\n`;
      });
      await sendMessage(chatId, message);
    } else {
      await sendMessage(chatId, 'Таблица пуста или данные не найдены.');
    }
  } catch (error) {
    await sendMessage(chatId, 'Произошла ошибка при получении данных. Попробуйте позже.');
  }
}); Серега , все установил прокси тоже пробовал не хочет парсить Ошибка получения данных через прокси 202.179.184.66:8080 - timeout of 30000ms exceeded
 Серега , все установил прокси тоже пробовал не хочет парсить Ошибка получения данных через прокси 202.179.184.66:8080 - timeout of 30000ms exceededНе удалось получить данные через прокси 202.179.184.66:8080, пробую следующий...
Ошибка парсинга данных: Не удалось получить данные с сайта через все доступные прокси.
Стр.:  1, 2
  
 
		    