
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
@soymaycol/maysite
Advanced tools
🌐 Descarga sitios web completos como archivos ZIP usando wget
npm install @soymaycol/maysite
El paquete intentará instalar wget
automáticamente durante la instalación si no está disponible en tu sistema.
const { downloadWebsiteAsZip } = require('@soymaycol/maysite');
async function descargarSitio() {
try {
const zipPath = await downloadWebsiteAsZip({
url: 'https://example.com',
outputDir: './descargas',
filename: 'mi_sitio_web'
});
console.log('Sitio descargado en:', zipPath);
} catch (error) {
console.error('Error:', error.message);
}
}
descargarSitio();
const { downloadWebsiteAsZip } = require('@soymaycol/maysite');
downloadWebsiteAsZip({
url: 'https://example.com',
onProgress: (message) => console.log('📥', message),
onError: (error) => console.error('❌', error.message),
onComplete: (zipPath) => console.log('✅ Completado:', zipPath)
});
const express = require('express');
const { downloadWebsiteAsZipExpress } = require('@soymaycol/maysite');
const app = express();
// Para URLs en query parameters: GET /download?url=https://example.com
app.get('/download', downloadWebsiteAsZipExpress);
// Para URLs en el body: POST /download con { "url": "https://example.com" }
app.use(express.json());
app.post('/download', downloadWebsiteAsZipExpress);
// Para URLs como parámetros: GET /download/https://example.com
app.get('/download/:url', downloadWebsiteAsZipExpress);
app.listen(3000, () => {
console.log('Servidor corriendo en puerto 3000');
});
downloadWebsiteAsZip(options)
Opción | Tipo | Descripción | Por defecto |
---|---|---|---|
url | string | URL del sitio web a descargar (requerido) | - |
outputDir | string | Directorio donde guardar los archivos | './downloads' |
filename | string | Nombre del archivo ZIP (sin extensión) | Basado en la URL |
onProgress | function | Callback para mostrar progreso | null |
onError | function | Callback para manejar errores | null |
onComplete | function | Callback cuando termine | null |
Si la instalación automática falla, puedes instalar wget manualmente:
# Con Homebrew
brew install wget
# Con MacPorts
sudo port install wget
sudo apt-get update
sudo apt-get install wget
sudo yum install wget
# Con Chocolatey
choco install wget
# Con winget
winget install GNU.Wget
const { downloadWebsiteAsZip } = require('@soymaycol/maysite');
downloadWebsiteAsZip({
url: 'https://mi-blog.com',
outputDir: './sitios-descargados',
filename: 'mi-blog-backup',
onProgress: (msg) => {
console.log(`[${new Date().toLocaleTimeString()}] ${msg}`);
},
onError: (err) => {
console.error('💥 Error durante la descarga:', err.message);
// Aquí puedes enviar el error a un servicio de logging
},
onComplete: (zipPath) => {
console.log(`🎉 ¡Descarga completada!`);
console.log(`📁 Archivo guardado en: ${zipPath}`);
// Aquí puedes hacer algo con el archivo, como subirlo a la nube
// uploadToCloud(zipPath);
}
});
const express = require('express');
const { downloadWebsiteAsZip } = require('@soymaycol/maysite');
const app = express();
app.use(express.json());
app.post('/api/download-website', async (req, res) => {
const { url, filename } = req.body;
if (!url) {
return res.status(400).json({
success: false,
message: 'URL es requerida'
});
}
try {
const zipPath = await downloadWebsiteAsZip({
url,
filename,
onProgress: (message) => {
console.log(`[${url}] ${message}`);
}
});
res.json({
success: true,
message: 'Sitio web descargado exitosamente',
zipPath
});
} catch (error) {
res.status(500).json({
success: false,
message: error.message
});
}
});
¿Encontraste un bug o tienes una sugerencia? ¡Las contribuciones son bienvenidas!
MIT © SoyMaycol
wget
website
download
zip
scraper
mirror
nodejs
express
FAQs
Descarga sitios web completos como archivos ZIP usando wget
We found that @soymaycol/maysite demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.