Çö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);
Bunu kendi koduma entegre edemiyorum nasıl yapabilirim?

Ama bu sadece 1 kerelik yazıyor ve sürekli metin belgesinin içindekileri siliyor alt alta yazamazmı.

Bir de kendi koduma koymam için ayrı şekilde olması lazım onu nasıl halledeceğim?

Ve birden fazla kelime ekleyemez miyim?
 
Son düzenleme:
Bunu kendi koduma entegre edemiyorum nasıl yapabilirim?

Ama bu sadece 1 kerelik yazıyor ve sürekli metin belgesinin içindekileri siliyor alt alta yazamazmı.

Bir de kendi koduma koymam için ayrı şekilde olması lazım onu nasıl halledeceğim?

Ve birden fazla kelime ekleyemez miyim?
Direk bütün bu işlemleri yapan büyük bir fonksiyon yollasam onu entegre edebilir misiniz? Sadece gerekli parametreleri yazacaksınız o kadar. Birden fazla kelimeden herhangi birini bulduğunda true mi yazacak? Alt alta yazacak biçimde yapabilirim.
 
Evet fonksiyon atarsanız deneyeyim entegre ederim o zaman birden fazla kelimeden herhangi birini bulduğunda bu sayfada var eğer 1 kelime bile yoksa bu sayfada yok yazsın.
 
JavaScript:
const puppeteer = require("puppeteer");
const fs = require("fs");

async function searchUrl(url, pattern = [], filePath) {
  const browser = await puppeteer.launch();
  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";
searchUrl(url, kelimeler, "Output.txt");
 
Ben herhangi bir function eklemedim şu anda eklerken sorun yaşıyorum. benim kod buna ekleyebilirmisiniz.

Kod:
const fs = require('fs');
const puppeteer = require('puppeteer')


(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    args: [`--window-size=1280,768`],
    defaultViewport: {
      width:1280,
      height:768
    }
 
      function delay(time) {
    return new Promise(function(resolve) {
        setTimeout(resolve, time)
    });
 }
 
  });
 
    const page = await browser.newPage();

    await page.goto('https://www.technopat.net/sosyal');
 
Ben herhangi bir function eklemedim şu anda eklerken sorun yaşıyorum. benim kod

Kod:
const fs = require('fs');
const puppeteer = require('puppeteer')


(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    args: [`--window-size=1280,768`],
    defaultViewport: {
      width:1280,
      height:768
    }
 
      function delay(time) {
    return new Promise(function(resolve) {
        setTimeout(resolve, time)
    });
 }
 
  });
 
    const page = await browser.newPage();

    await page.goto('https://www.technopat.net/sosyal');
Fonksiyonu nereye yazıyorsunuz? Neden bulamasın anlamadı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);
 
Çözüm

Technopat Haberler

Geri
Yukarı