Çö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);
Merhaba, "puppeteer" ile sayfada Kod'ta belirtilen kelimenin aratılması varsa konsola var yoksa konsola yok yazdırılmasını istiyorum nasıl yapabilirim?
Sayfa derken nereyi kastediyorsunuz? URL'si verilen bir sayfanın kaynak kodu mu aratılacak?
 
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.
 
Bu kodta tam olarak nereye ekliyoruz kelimeleri ve consola yazdırmanın yanı sıra Txt'ye kaydettireceğim.
searchUrl("https://www.technopat.net/sosyal", "technopat") Bu şekilde kullanabilirsin. Text dosyasına sitede varsa var yoksa yok mu yazdırmak istiyorsun?
 
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.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…