یک راهنمای گام به گام برای تنظیم API تصاویر Puppeteer در اوبونتو

Summarize this content to 400 words in Persian Lang
من نیاز به تنظیم یک نقطه انتهایی API داشتم که وقتی URL منتقل می شود ، تصویری از وب سایت را می گیرد. این راهنما تنظیم یک برنامه Node.js را با استفاده از Puppeteer پوشش می دهد ، که به عنوان API برای ضبط تصاویر عمل می کند.
1. به روز رسانی و ارتقاء سیستم
ابتدا سیستم خود را به روز کنید و به روز کنید تا مطمئن شوید که تمام بسته ها به روز هستند.
sudo apt update && sudo apt upgrade -y
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
2. node.js و npm را نصب کنید
برای اجرای Puppeteer به Node.js و npm نیاز دارید. آنها را با استفاده از مخزن رسمی Node.js نصب کنید.
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash –
sudo apt install -y nodejs
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
تأیید نصب:
node -v
npm -v
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
3. یک فهرست پروژه ایجاد کنید
یک دایرکتوری برای پروژه Puppeteer خود ایجاد کنید.
mkdir puppeteer-screenshot-api
cd puppeteer-screenshot-api
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
4. یک پروژه Node.js را راه اندازی کنید
یک پروژه Node.js جدید را راه اندازی کنید.
npm init -y
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این یک ایجاد خواهد کرد package.json فایل با مقادیر پیش فرض
5. Dependencies مورد نیاز را نصب کنید
وابستگی های لازم را برای Puppeteer نصب کرده و برای تنظیم API بیان کنید.
npm install express puppeteer
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
6. API Puppeteer Screenshot را بنویسید
یک فایل به نام ایجاد کنید index.js در فهرست پروژه خود و کد زیر را اضافه کنید:
const express = require(‘express’);
const puppeteer = require(‘puppeteer’);
const app = express();
const port = 3000;
// Screenshot endpoint
app.get(‘/screenshot’, async (req, res) => {
const { url } = req.query;
if (!url) {
return res.status(400).send(‘Please provide a URL’);
}
try {
const browser = await puppeteer.launch({
args: [‘–no-sandbox’, ‘–disable-setuid-sandbox’] // Necessary for running Puppeteer on Ubuntu
});
const page = await browser.newPage();
await page.goto(url, { waitUntil: ‘networkidle2’ });
const screenshot = await page.screenshot({ fullPage: true });
await browser.close();
// Set content type and send screenshot
res.setHeader(‘Content-Type’, ‘image/png’);
res.send(screenshot);
} catch (error) {
console.error(error);
res.status(500).send(‘Error capturing screenshot’);
}
});
app.listen(port, () => {
console.log(`Puppeteer Screenshot API is running on http://localhost:${port}`);
});
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
7. API Puppeteer را اجرا کنید
سرور را با استفاده از Node.js اجرا کنید:
node index.js
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
سرور اکنون باید روشن باشد http://localhost:3000. می توانید با مراجعه به URL زیر در مرورگر خود ، آن را آزمایش کنید:
http://localhost:3000/screenshot?url=https://example.com
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این یک تصویر PNG از URL ارائه شده را برمی گرداند.
8. Puppeteer Dependencies را نصب کنید
بعضی اوقات عروسک های عروسکی برای اوبونتو به وابستگی های اضافی نیاز دارند. آنها را با اجرا نصب کنید:
sudo apt install -y libxshmfence1 libasound2 libgbm-dev libgtk-3-0 libnss3 libxss1 libxtst6 xdg-utils
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
9. در حال اجرا Puppeteer به عنوان یک سرویس پس زمینه (اختیاری)
اگر می خواهید API Puppeteer در پس زمینه اجرا شود و به طور خودکار پس از راه اندازی مجدد شروع شود ، می توانید آن را به عنوان یک سرویس SystemD تنظیم کنید.
یک فایل سرویس برای Puppeteer API خود ایجاد کنید.
sudo nano /etc/systemd/system/puppeteer-screenshot.service
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
محتوای زیر را به فایل اضافه کنید:
[Unit]
Description=Puppeteer Screenshot API
After=network.target
[Service]
ExecStart=/usr/bin/node /path/to/your/puppeteer-screenshot-api/index.js
Restart=on-failure
User=your-username
Environment=NODE_ENV=production
[Install] WantedBy=multi-user.target
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جایگزین کنید /path/to/your/puppeteer-screenshot-api/index.js با مسیر واقعی پروژه شما
سرویس را فعال و راه اندازی کنید:
sudo systemctl enable puppeteer-screenshot
sudo systemctl start puppeteer-screenshot
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
بررسی وضعیت:
sudo systemctl status puppeteer-screenshot
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
10. API را آزمایش کنید
اکنون می توانید درخواست هایی را به سرور خود ارسال کنید تا تصاویر را ضبط کنید. استفاده کنید curl یا مرورگر شما:
curl “http://localhost:3000/screenshot?url=https://example.com” –output example.png
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این اسکرین شات را به عنوان ذخیره می کند example.png.
برای راهنمایی های بیشتر در مورد توسعه وب ، Dailysandbox را بررسی کنید و برای خبرنامه رایگان ما ثبت نام کنید تا از منحنی جلو بمانید!
من نیاز به تنظیم یک نقطه انتهایی API داشتم که وقتی URL منتقل می شود ، تصویری از وب سایت را می گیرد. این راهنما تنظیم یک برنامه Node.js را با استفاده از Puppeteer پوشش می دهد ، که به عنوان API برای ضبط تصاویر عمل می کند.
1. به روز رسانی و ارتقاء سیستم
ابتدا سیستم خود را به روز کنید و به روز کنید تا مطمئن شوید که تمام بسته ها به روز هستند.
sudo apt update && sudo apt upgrade -y
2. node.js و npm را نصب کنید
برای اجرای Puppeteer به Node.js و npm نیاز دارید. آنها را با استفاده از مخزن رسمی Node.js نصب کنید.
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
تأیید نصب:
node -v
npm -v
3. یک فهرست پروژه ایجاد کنید
یک دایرکتوری برای پروژه Puppeteer خود ایجاد کنید.
mkdir puppeteer-screenshot-api
cd puppeteer-screenshot-api
4. یک پروژه Node.js را راه اندازی کنید
یک پروژه Node.js جدید را راه اندازی کنید.
npm init -y
این یک ایجاد خواهد کرد package.json
فایل با مقادیر پیش فرض
5. Dependencies مورد نیاز را نصب کنید
وابستگی های لازم را برای Puppeteer نصب کرده و برای تنظیم API بیان کنید.
npm install express puppeteer
6. API Puppeteer Screenshot را بنویسید
یک فایل به نام ایجاد کنید index.js
در فهرست پروژه خود و کد زیر را اضافه کنید:
const express = require('express');
const puppeteer = require('puppeteer');
const app = express();
const port = 3000;
// Screenshot endpoint
app.get('/screenshot', async (req, res) => {
const { url } = req.query;
if (!url) {
return res.status(400).send('Please provide a URL');
}
try {
const browser = await puppeteer.launch({
args: ['--no-sandbox', '--disable-setuid-sandbox'] // Necessary for running Puppeteer on Ubuntu
});
const page = await browser.newPage();
await page.goto(url, { waitUntil: 'networkidle2' });
const screenshot = await page.screenshot({ fullPage: true });
await browser.close();
// Set content type and send screenshot
res.setHeader('Content-Type', 'image/png');
res.send(screenshot);
} catch (error) {
console.error(error);
res.status(500).send('Error capturing screenshot');
}
});
app.listen(port, () => {
console.log(`Puppeteer Screenshot API is running on http://localhost:${port}`);
});
7. API Puppeteer را اجرا کنید
سرور را با استفاده از Node.js اجرا کنید:
node index.js
سرور اکنون باید روشن باشد http://localhost:3000
. می توانید با مراجعه به URL زیر در مرورگر خود ، آن را آزمایش کنید:
http://localhost:3000/screenshot?url=https://example.com
این یک تصویر PNG از URL ارائه شده را برمی گرداند.
8. Puppeteer Dependencies را نصب کنید
بعضی اوقات عروسک های عروسکی برای اوبونتو به وابستگی های اضافی نیاز دارند. آنها را با اجرا نصب کنید:
sudo apt install -y libxshmfence1 libasound2 libgbm-dev libgtk-3-0 libnss3 libxss1 libxtst6 xdg-utils
9. در حال اجرا Puppeteer به عنوان یک سرویس پس زمینه (اختیاری)
اگر می خواهید API Puppeteer در پس زمینه اجرا شود و به طور خودکار پس از راه اندازی مجدد شروع شود ، می توانید آن را به عنوان یک سرویس SystemD تنظیم کنید.
- یک فایل سرویس برای Puppeteer API خود ایجاد کنید.
sudo nano /etc/systemd/system/puppeteer-screenshot.service
- محتوای زیر را به فایل اضافه کنید:
[Unit]
Description=Puppeteer Screenshot API
After=network.target
[Service]
ExecStart=/usr/bin/node /path/to/your/puppeteer-screenshot-api/index.js
Restart=on-failure
User=your-username
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
جایگزین کنید /path/to/your/puppeteer-screenshot-api/index.js
با مسیر واقعی پروژه شما
- سرویس را فعال و راه اندازی کنید:
sudo systemctl enable puppeteer-screenshot
sudo systemctl start puppeteer-screenshot
- بررسی وضعیت:
sudo systemctl status puppeteer-screenshot
10. API را آزمایش کنید
اکنون می توانید درخواست هایی را به سرور خود ارسال کنید تا تصاویر را ضبط کنید. استفاده کنید curl
یا مرورگر شما:
curl "http://localhost:3000/screenshot?url=https://example.com" --output example.png
این اسکرین شات را به عنوان ذخیره می کند example.png
.
برای راهنمایی های بیشتر در مورد توسعه وب ، Dailysandbox را بررسی کنید و برای خبرنامه رایگان ما ثبت نام کنید تا از منحنی جلو بمانید!