Öncelikle konuya hoş geldiniz. Bu konuda basit Puppeteer ve Express'in ortak kullanımı hakkında bilgi verilicektir.
Bu ikisi sayesinde bir çok API hizmeti verebilirsiniz.
Node.js üzerinde çok kritik olan kütüphanelerdir Puppeteer ve Express.
Fazla vaktim olmadığı için biraz hızlı ve basit anlatım yapıldı. Şimdiden kusura bakmayınız.
Express Ne İşe Yarar?
Express bizim için sunucunun arka planında HTTP işlemlerini yürütür.
Gelen istekleri kolayca yönlendirebiliriz veya yönetebiliriz.
Puppeteer Ne İşe Yarar?
Puppeteer sayesinde web tarayıcılarını kolayca yönetebiliriz.
Bir veriyide kolayca çekebiliriz tarayıcı üzerinden.
*TANIMLAMALARA FAZLA EMEK VERMİYORUM. GOOGLE ÜZERİNDEN ARAŞTIRABİLİRSİNİZ.*
Express'ten bir Örnek:
Daha iyi anlamanız açısından örnek olarak bizim xxxx.com diye bir sitemiz bulunmaktadır.
Burası API dağıtacağımız bir site olsun.
Şöyle bir şey yapalım:
/kontrol kısmına gelen istekleri yani xxxx.com/kontrol kısmına gelen istekleri yönetelim.
Bir link değeri olsun ve bu linkte tiktok profil linki girili olsun. Bizde profil üzerinden profili fotoğrafını çekip isteğe cevap verelim.
Öncelikle app.js adında bir dosya açalım. Siz farklı bir ad üzerindende açabilirsiniz ben normal olarak açıyorum.
Burda yaptığımız işlemler:
Paketlerimizi öncelikle tanımladık.
Uygulamamızı 3000 portunda çalıştırdık.
app.get('/', async (req, res) => { - EĞER KULLANICI XXXX.COM GİRERSE
- Bu kısımda gördüğünüz gibi şöyle bir kısım var: res.sendFile(__dirname + '/index.html'); - KULLANICIYA İNDEX.HTML DOSYASINI GÖRÜNTÜLE
Bu kısımda gördüğünüz gibi gelen bir http isteğini yönlendirdik. Siteye giren kullanıcıya index.html dosyasını görüntülettik.
Express ve Puppeteer ile TikTok Kullanıcı Bilgileri Çekme
Örnek olarak ben bir API hizmeti açtım. Sorgu başına 0.50TL alacağım.
Bir kişi bize istek yolladığı zaman belirtilen kullanıcının profil bilgilerini alalım.
Şimdi daha iyi anlayacaksınızdır:
Burda /kontrol üzerine gelen istekleri yönetiyoruz.
Fark ettiyseniz kodumuz da şöyle bir bölüm vardır,
const kontrolURL = req.query.link
Bu kısımda şunu yapıyoruz:
Örnek olarak müşterimiz bizim sitemize şöyle bir istek yolladı, xxxx.com[/URL]/kontrol?link=Roichue
KontrolURL bu sonunda ki veriyi alabilmemizi sağlar. Peki bu işlemleri bunu linkte göstermeden yapabilir miyiz? Tabi ki evet.
Bunun için session kullanmak gerekir fakat onu şimdi anlatmayacağım konumuz bu değildir.
await page.goto(kontrolURL) - Bu kısımda link kısmına girilen URL'ye gidiyoruz.
TikTok profil linki gibi düşünün tarayıcımız açıldı puppeteer sayesinde ve belirtilen profil linkine giriyoruz.
Bu kısım bizim için Puppeteer tarafında çok önemlidir. Bu kısımda TikTok kullanıcı adını çekiyoruz.
Nasıl?
Örnek olarak bize gelen linkte bir TikTok profil linki var.
Ben bu linkten kullanıcı adını çekmek istiyorum.
(Siz kendiniz, Takipçi sayısını vb. her şeyi çekebilirsiniz göstereceğim şimdi)
Herhangi bir TikTok profiline giriyoruz.
Kullanıcı adını çekmek istiyorsak, kullanıcı adına sağ tıklıyoruz ve inceliyoruz.
İnceleme bölümüne geldikten sonra:
Elemente sağ tıklayınız Copy > Copy full XPath tıklayınız.
XPath sayesinde artık kullanıcı adını çekebileceğiz.
Artık gördüğünüz gibi kodumuz hazır.
Kontrol kısmına link ile bir istek geldiği zaman tiktok kullanıcı adını cevap olarak geri vericektir.
Kodun sorun yaratmaması için Try Catch işlemi yapıyoruz:
Bir frontend yaparak bu işlemleri deneme, yanılma ile daha iyi öğrenebilirsiniz.
Bu konuda NODE.JS ile sunucu taraflı işlemleri yaptık.
Gelen HTTP isteklerini yönettik.
Bu arada kodunuz tamamen bittiğinde headless'i false üzerinde çalıştırmanız daha iyi olucaktır.
İşlem yaparken tarayıcının açık olmasını veya arka planda çalışmasını sağlar.
True mod genellikle geliştirilme yapılırken kullanılır.
Hayırlı forumlar dilerim.
Bu ikisi sayesinde bir çok API hizmeti verebilirsiniz.
Node.js üzerinde çok kritik olan kütüphanelerdir Puppeteer ve Express.
Fazla vaktim olmadığı için biraz hızlı ve basit anlatım yapıldı. Şimdiden kusura bakmayınız.
Express Ne İşe Yarar?
Express bizim için sunucunun arka planında HTTP işlemlerini yürütür.
Gelen istekleri kolayca yönlendirebiliriz veya yönetebiliriz.
Puppeteer Ne İşe Yarar?
Puppeteer sayesinde web tarayıcılarını kolayca yönetebiliriz.
Bir veriyide kolayca çekebiliriz tarayıcı üzerinden.
*TANIMLAMALARA FAZLA EMEK VERMİYORUM. GOOGLE ÜZERİNDEN ARAŞTIRABİLİRSİNİZ.*
Express'ten bir Örnek:
JavaScript:
app.get('/kontrol', async (req, res) => {
Daha iyi anlamanız açısından örnek olarak bizim xxxx.com diye bir sitemiz bulunmaktadır.
Burası API dağıtacağımız bir site olsun.
Şöyle bir şey yapalım:
/kontrol kısmına gelen istekleri yani xxxx.com/kontrol kısmına gelen istekleri yönetelim.
Bir link değeri olsun ve bu linkte tiktok profil linki girili olsun. Bizde profil üzerinden profili fotoğrafını çekip isteğe cevap verelim.
Öncelikle app.js adında bir dosya açalım. Siz farklı bir ad üzerindende açabilirsiniz ben normal olarak açıyorum.
JavaScript:
const express = require('express');
const puppeteer = require('puppeteer');
const app = express();
const port = 3000;
app.get('/', async (req, res) => {
res.sendFile(__dirname + '/index.html');
});
app.listen(port, () => {
console.log(`http://localhost:${port}`);
});
Burda yaptığımız işlemler:
Paketlerimizi öncelikle tanımladık.
Uygulamamızı 3000 portunda çalıştırdık.
app.get('/', async (req, res) => { - EĞER KULLANICI XXXX.COM GİRERSE
- Bu kısımda gördüğünüz gibi şöyle bir kısım var: res.sendFile(__dirname + '/index.html'); - KULLANICIYA İNDEX.HTML DOSYASINI GÖRÜNTÜLE
Bu kısımda gördüğünüz gibi gelen bir http isteğini yönlendirdik. Siteye giren kullanıcıya index.html dosyasını görüntülettik.
Express ve Puppeteer ile TikTok Kullanıcı Bilgileri Çekme
Örnek olarak ben bir API hizmeti açtım. Sorgu başına 0.50TL alacağım.
Bir kişi bize istek yolladığı zaman belirtilen kullanıcının profil bilgilerini alalım.
Şimdi daha iyi anlayacaksınızdır:
JavaScript:
app.get('/kontrol', async (req, res) => {
//PUPPETEER HAZIRLIKLARI
const browser = await puppeteer.launch({
headless: true
});
const page = await browser.newPage()
//PUPPETEER HAZIRLIKLARI
const kontrolURL = req.query.link
await page.goto(kontrolURL)
const selector = '/html/body/div[1]/div[2]/div[2]/div/div/div[1]/div[1]/div[2]/h1';
await page.waitForXPath(selector);
const handle = await page.$x(selector);
const text = await page.evaluate(element => element.textContent, handle[0]);
await browser.close();
res.json({ result: text });
});
Burda /kontrol üzerine gelen istekleri yönetiyoruz.
Fark ettiyseniz kodumuz da şöyle bir bölüm vardır,
const kontrolURL = req.query.link
Bu kısımda şunu yapıyoruz:
Örnek olarak müşterimiz bizim sitemize şöyle bir istek yolladı, xxxx.com[/URL]/kontrol?link=Roichue
KontrolURL bu sonunda ki veriyi alabilmemizi sağlar. Peki bu işlemleri bunu linkte göstermeden yapabilir miyiz? Tabi ki evet.
Bunun için session kullanmak gerekir fakat onu şimdi anlatmayacağım konumuz bu değildir.
await page.goto(kontrolURL) - Bu kısımda link kısmına girilen URL'ye gidiyoruz.
TikTok profil linki gibi düşünün tarayıcımız açıldı puppeteer sayesinde ve belirtilen profil linkine giriyoruz.
JavaScript:
const selector = '/html/body/div[1]/div[2]/div[2]/div/div/div[1]/div[1]/div[2]/h1';
await page.waitForXPath(selector);
const handle = await page.$x(selector);
const text = await page.evaluate(element => element.textContent, handle[0]);
await browser.close();
res.json({ result: text }); //BU KISIMDA İSTEĞE CEVAP VERİYORUZ.
Bu kısım bizim için Puppeteer tarafında çok önemlidir. Bu kısımda TikTok kullanıcı adını çekiyoruz.
Nasıl?
Örnek olarak bize gelen linkte bir TikTok profil linki var.
Ben bu linkten kullanıcı adını çekmek istiyorum.
(Siz kendiniz, Takipçi sayısını vb. her şeyi çekebilirsiniz göstereceğim şimdi)
Herhangi bir TikTok profiline giriyoruz.
Kullanıcı adını çekmek istiyorsak, kullanıcı adına sağ tıklıyoruz ve inceliyoruz.
İnceleme bölümüne geldikten sonra:
Elemente sağ tıklayınız Copy > Copy full XPath tıklayınız.
XPath sayesinde artık kullanıcı adını çekebileceğiz.
JavaScript:
const selector = '/html/body/div[1]/div[2]/div[2]/div/div/div[1]/div[1]/div[2]/h1';
Artık gördüğünüz gibi kodumuz hazır.
Kontrol kısmına link ile bir istek geldiği zaman tiktok kullanıcı adını cevap olarak geri vericektir.
Kodun sorun yaratmaması için Try Catch işlemi yapıyoruz:
JavaScript:
app.get('/kontrol', async (req, res) => {
try {
const browser = await puppeteer.launch({
headless: true
});
const page = await browser.newPage()
const kontrolURL = req.query.link
await page.goto(kontrolURL)
const selector = '/html/body/div[1]/div[2]/div[2]/div/div/div[1]/div[1]/div[2]/h1';
await page.waitForXPath(selector);
const handle = await page.$x(selector);
const text = await page.evaluate(element => element.textContent, handle[0]);
await browser.close();
res.json({ result: text });
} catch (error) {
console.error(error);
res.status(500).json({ error: 'hata' });
}
});
Bir frontend yaparak bu işlemleri deneme, yanılma ile daha iyi öğrenebilirsiniz.
Bu konuda NODE.JS ile sunucu taraflı işlemleri yaptık.
Gelen HTTP isteklerini yönettik.
Bu arada kodunuz tamamen bittiğinde headless'i false üzerinde çalıştırmanız daha iyi olucaktır.
İşlem yaparken tarayıcının açık olmasını veya arka planda çalışmasını sağlar.
True mod genellikle geliştirilme yapılırken kullanılır.
Hayırlı forumlar dilerim.
Son düzenleme: