Çözüldü Puppeteer ile açık olan Chromium sekmesindeki sayfada yazı bulma

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 da halihazırda çalışan projem var en son olarak ekranda açık olan Chromium penceresinde sekmede açık olan sayfada kelime aratmasını istiyorum ama belirli bir linki değil açık olan sayfayı. Birden fazla kelime aratacak herhangi birbiri varsa ture.txt içine "kelimelerden biri bulundu" yok ise false.txt içine "kelimelerden herhangi biri bulunamadı" gibi bir cümle yazdırması gerekiyor ve her seferinde alt alta bu işlemi her açılışta yapacak nasıl yapabilirim?
 
Çözüm
Evet aynen öyle ama her seferinde alt alta var.txt var var gibi yoksa yok.txt yok yok gibi alt alta yazdırsın.
Fonksiyonu güncelledim.
JavaScript:
async function searchPage(page, pattern = [], trueFilePath, falseFilePath) {
  const content = await page.content();
  let result = false;
  for (let i = 0; i < pattern.length; i++) {
    if (content.replace(/\s/g, "").includes(pattern[i])) {
      result = true;
      break;
    }
  }
  const filePath = result ? trueFilePath : falseFilePath;
  const text = result ? "Bulundu \r\n" : "Bulunamadı \r\n";
  if (!fs.existsSync(filePath)) {
    fs.writeFileSync(filePath, text);
  } else {
    fs.open(filePath, "a", 666, function (e, id) {
      fs.write(id, text, null, "utf8", function () {
        fs.close(id);
      });
    });
  }
}

Kullanmak için son parametre olarak. Bulunamadı yazmasını istediğiniz dosyanın ismini giriyorsunuz.
await searchPage(page, kelimeler, "Var.txt", "Yok.txt");
Kelime bulma sisteminde kelime yerine link bulacak gibi düşünebilir adres çubuğunda linke bakacak varsa var yoksa yok yazdıracak txt ye aynı kelime sistemi gibi sadece link bulacak yani.
 
Kelime bulma sisteminde kelime yerine link bulacak gibi düşünebilir adres çubuğunda linke bakacak varsa var yoksa yok yazdıracak txt ye aynı kelime sistemi gibi sadece link bulacak yani.
Link bulması için site içerisinde <a> taglarına bakması lazım. Sitede herhangi bir link var mı yok mu onu mu araştırmasını istiyorsunuz.
 
Adres çubuğundaki linki alacağız ve kodun içersine yazdığımız link ile karşılaştıracağız eğer aynı linkse var yazacak aynı link değilse yok yazdıracak.
Kelime arama sistemiyle beraber mi çalışacak bu? "Linkler aynı, kelime bulunamadı" yada "Linkler farklı, kelime bulundu" gibi.
 
Evet kelime arama sistemi de olacak kodta ama kelime arama sistemi farklı fonksiyon adı ile olsun link karşılaştırma sistemi farklı fonksiyon ile olsun. Link aynı olursa linkvar.txt içine var yazdırsın aynı link değilse linkyok.txt içine yazdırsın.
 
Evet kelime arama sistemi de olacak kodta ama kelime arama sistemi farklı fonksiyon adı ile olsun link karşılaştırma sistemi farklı fonksiyon ile olsun. Link aynı olursa linkvar.txt içine var yazdırsın aynı link değilse linkyok.txt içine yazdırsın.
Tamam bilgisayardan uzağım şuan. Eve geçince halledeceğim.
 
Tamamdır teşekkür ederim yardımların için.



Reis ne zaman bakabilirsin.
JavaScript:
async function compareURL(page, url) {
  const currentURL = await page.evaluate(() => document.location.href);
  if (currentURL === url) {
    fs.writeFileSync(
      "LinkYok.txt",
      `Sayfa URL'si aynı: ${currentURL} ve ${url}`
    );
  } else {
    fs.writeFileSync(
      "LinkVar.txt",
      `Sayfa farklı URL'de. Güncel URL: ${currentURL}`
    );
  }
}
Verdiğiniz url ile sayfanın şu an bulunduğu url eşit ise LinkYok.txt'ye yazdırıyor. Linkler farklı ise ve sayfa başka bir url'de ise LinkVar.txt'ye yazdırıyor. Kullanım bu şekilde:
JavaScript:
compareURL(page, "https://www.technopat.net/sosyal/");
 

Technopat Haberler

Geri
Yukarı