Spaces:
Sleeping
Sleeping
const express = require('express'); | |
const axios = require('axios'); | |
const cheerio = require('cheerio'); | |
const app = express(); | |
app.use(express.json()); | |
const parsePage = async (url) => { | |
const response = await axios.get(url); | |
const html = response.data; | |
const $ = cheerio.load(html); | |
const parsedResults = []; | |
$('.b-content__inline_item').each((index, element) => { | |
const titleElement = $(element).find('.b-content__inline_item-link a'); | |
const title = titleElement.text().trim(); | |
const pageUrl = titleElement.attr('href'); | |
const imageUrl = $(element).find('.b-content__inline_item-cover a img').attr('src'); | |
parsedResults.push({ | |
title: title, | |
imageUrl: imageUrl, | |
pageUrl: pageUrl, | |
}); | |
}); | |
return parsedResults; | |
}; | |
app.get('/parse', async (req, res) => { | |
try { | |
const baseUrl = 'https://hdrezka180maa.org/animation'; | |
let currentPage = 1; | |
let hasMorePages = true; | |
const allResults = []; | |
while (hasMorePages) { | |
const pageUrl = currentPage === 1 ? baseUrl : `${baseUrl}/page/${currentPage}/`; | |
const results = await parsePage(pageUrl); | |
if (results.length === 0) { | |
hasMorePages = false; | |
} else { | |
allResults.push(...results); | |
currentPage++; | |
} | |
} | |
res.json(allResults); | |
} catch (error) { | |
console.error(error); | |
res.status(500).json({ error: 'Произошла ошибка сервера при парсинге.' }); | |
} | |
}); | |
const port = 7860; | |
app.listen(port, () => { | |
console.log(`Сервер запущен на порту ${port}`); | |
}); |