Çö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);
Evet aynen öyle.
Yapacağınız tıklama, klavye ile yazı yazma gibi işlemler URL'yi değiştirmeyebilir. URL bazlı siteyi arattığımız için çalışmaz. Tıklayıp URL'yi değiştirecek bir işlem yapacaksanız direk kendiniz tıklayıp URL'yi programa verin.
 
URL bazlı aratma olmadan aratma yapamıyor muyuz crhomium sekmesinde örnek sekme 1'deki sayfayı aratma gibi bir şey.
 
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.

 
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.
 
Evet şimdi dediğiniz gibi yaptım oldu fakat arama işlemini en sona nasıl alabilirim en sona işlem olarak yapsın yani.
 
Hayır dediğin yere işlemleri ekledim fakat önce kelimeyi aramak için giriyor sonrasında istediğim işlemleri yapıyor.
 
Hayır dediğin yere işlemleri ekledim fakat önce kelimeyi aramak için giriyor sonrasında istediğim işlemleri yapıyor.
await kullandığınızdan emin misiniz? İşlemleri yollarsanız bir de ben deneyim.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…