Çözüldü Puppeteer ile sayfada kelime arama

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

561400

Centipat
Katılım
7 Temmuz 2022
Mesajlar
390
Çözümler
5
Merhaba, "puppeteer" ile sayfada Kod'ta belirtilen kelimenin aratılması varsa konsola var yoksa konsola yok yazdırılmasını istiyorum nasıl yapabilirim?
 
Çözüm
En alta yazıyorum function eklemeden ama siz koyabilir misiniz bu koda bu sistemi.
Sizin eklediğiniz kısımlarda fonksiyonun içerisinde mevcut direk bu kodu kopyalayıp yapıştırabilirsiniz. Çalıştırırken birkaç ayar yaparak çalıştırıyorsunuz anladığım kadarıyla. Onun içinde destek sağladım.
JavaScript:
const puppeteer = require("puppeteer");
const fs = require("fs");

async function searchUrl(url, pattern = [], filePath, options = {}) {
  const browser = await puppeteer.launch(options);
  const page = await browser.newPage();
  await page.goto(url, {
    waitUntil: "domcontentloaded",
  });
  const content = await page.content();
  await browser.close();
  let result = `URL: ${url} \r\n`;
  for (let i = 0; i < pattern.length; i++) {
    if (content.replace(/\s/g, "").includes(pattern[i])) {
      result += `${pattern[i]} bulundu. \r\n`;
    } else {
      result += `${pattern[i]} bulunamadı. \r\n`;
    }
  }
  if (!fs.existsSync(filePath)) {
    fs.writeFileSync(filePath, result);
  } else {
    fs.open(filePath, "a", 666, function (e, id) {
      fs.write(id, "\r\n" + result, null, "utf8", function () {
        fs.close(id);
      });
    });
  }
}

Kullanımı:
JavaScript:
const kelimeler = ["technopat", "sistem", "deneme34143"];
const url = "https://www.technopat.net/sosyal";
const ayarlar = {
    headless: false,
    args: [`--window-size=1280,768`],
    defaultViewport: {
      width: 1280,
      height: 768
    }
}
searchUrl(url, kelimeler, "Output.txt", ayarlar);
URL'sini açacak tıklama yapacak onları ben ayarladım sonra karşısına çıkan açık olan sayfada arama yapacak eğer varsa konsola yazacak var diye yoksa yok yazacak.

Sayfa derken nereyi kastediyorsunuz? URL'si verilen bir sayfanın kaynak kodu mu aratılacak?

Evet kaynak kodunda <p></p> içinde mesela onu ben ona belirteceğim o şekilde.
 
JavaScript:
const puppeteer = require("puppeteer");

async function searchUrl (url, pattern) => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(url, {
    waitUntil: "domcontentloaded",
  });
  const content = await page.content();
  console.log(content.replace(/\s/g, "").includes(pattern));
  await browser.close();
}
 
Bu kodta tam olarak nereye ekliyoruz kelimeleri ve consola yazdırmanın yanı sıra Txt'ye de var yok gibi kaydettireceğim ama onları yapması için yazacağım kodu nereye yazacağım.
 
JavaScript:
const puppeteer = require("puppeteer");
const fs = require("fs");

async function searchUrl(url, pattern) {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(url, {
    waitUntil: "domcontentloaded",
  });
  const content = await page.content();
  await browser.close();
  return content.replace(/\s/g, "").includes(pattern);
}

searchUrl("https://www.technopat.net/sosyal", "technopat")
  .then((data) => {
    fs.writeFile("Output.txt", data.toString(), (err) => {
      if (err) throw err;
    });
  })
  .catch((err) => {
    if (err) throw err;
  });
 
Txtdeki yazısını değiştirebilir miyim peki.

Ve bana verilen URL değil tarayıcı penceresini arayacak bir sistem lazım kendi koduma dahil etmem gerek.

Kendi kodumda puppeteer bir sayfa açıp işlemleri yapıyor zaten son olarak varsa veya yoksa kaydını txt ye istiyorum.
 
JavaScript:
const puppeteer = require("puppeteer");
const fs = require("fs");

async function searchUrl(url, pattern) {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(url, {
    waitUntil: "domcontentloaded",
  });
  const content = await page.content();
  await browser.close();
  return content.replace(/\s/g, "").includes(pattern);
}

searchUrl("https://www.technopat.net/sosyal", "technopat")
  .then((result) => {
    const output = result ? "Sitede bundan var" : "Sitede bundan yok";
    fs.writeFile("Output.txt", output, (err) => {
      if (err) throw err;
    });
  })
  .catch((err) => {
    if (err) throw err;
  });
Bu işinizi görür.
 

Technopat Haberler

Yeni konular

Yeni mesajlar

Geri
Yukarı