Çö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 bazlı aratma olmadan aratma yapamıyor muyuz crhomium sekmesinde örnek sekme 1'deki sayfayı aratma gibi bir şey.
Biz URL bazlı aratıyoruz şuanda fonksiyon sayesinde. URL'yi alıyor ve sonucu bize veriyor. Bu şekilde değilde. URL'yi al, işlemleri yap, ondan sonra sonucu bize ver dememiz gerek fonksiyona. Fonksiyonun içinde belirttiğim kısımda yapın işlemleri.
JavaScript:
await page.goto(url, {
    waitUntil: "domcontentloaded",
});

//İşlemleri bu kısma kodlayabilirsiniz.

const content = await page.content();
 
JavaScript:
await page.goto(url, {
^^^^^

SyntaxError: await is only valid in async functions and the top level bodies of modules

Hatasını alıyorum. Attığınız kodu "
searchUrl("Technopat Sosyal", "Technopat")" bu kodun üstüne koydum.

Biz URL bazlı aratıyoruz şu anda fonksiyon sayesinde. URL'yi alıyor ve sonucu bize veriyor. Bu şekilde değil de. URL'yi al, işlemleri yap, ondan sonra sonucu bize ver dememiz gerek fonksiyona. Fonksiyonun içinde belirttiğim kısımda yapın işlemleri.
JavaScript:
await page.goto(url, {
 waitUntil: "domcontentloaded",
});

//İşlemleri bu kısma kodlayabilirsiniz.

const content = await page.content();
 
JavaScript:
await page.goto(url, {
^^^^^

SyntaxError: await is only valid in async functions and the top level bodies of modules

Hatasını alıyorum. Attığınız kodu "
searchUrl("Technopat Sosyal", "Technopat")" bu kodun üstüne koydum.
Onun üstüne değil işte belirttiğim yere koyacaksınız. Direk fonksiyonun içine. Fonksiyonda sayfaya gitme işlemini yaptıktan sonra page.content() almadan önce yapmalısınız. Yukarda belirttim aslında.
 

Technopat Haberler

Yeni konular

Geri
Yukarı