Çö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);
Yeni proje açıp sizin bu 2 kodu ekledim fakat çalışmıyor.


Açtığım proje:

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 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);

  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);
      });
    });
  }
}
 
Son düzenleyen: Moderatör:
Hocam ne yaptınız çalışmaz tabi. Direkt bunu kopyalayın.
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);
      });
    });
  }
}

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);
 
Son düzenleyen: Moderatör:
Ben kodu entegre edemiyorum bu projeye JavaScript'e yeni geçtim hiç anlamıyorum.

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');

Bu JS dosyasına direkt entegre edip atabilir misiniz? Benim yaptığım JS'ye ekleyemiyorum çünkü bu attığım koda yapamaz mıyız? Tıklama noktalarını vs. ayarladım ben ve geçiremiyorum sizin attığınız yere.
 
Son düzenleyen: Moderatör:
Hocam onu ben de ayarladım şu attığım kodu bir dosyaya kopyalayın ve çalıştırın göreceksiniz. Neden entegre etmek istiyorsunuz? Entegre edilecek bir şey yok. Çok eksiğiniz var. Kullanım kısmını direkt fonksiyonun ortasına yapıştırmışsınız altına bile değil.
 
Son düzenleyen: Moderatör:
await page.goto gibi kodlar ekleyemiyorum, onu nasıl yapabilirim?
 
Son düzenleyen: Moderatör:
Çalıştı. Başka bir sayfaya gidip klavye girdisi tıklamalar yaptırmak istiyorum fakat bunları kabul etmiyor awit hatası veriyor.
Kod:
   await page.click('[type=""]')
   await page.keyboard.type("dsafasdf");
  
   //bunun gibi kodları başında await olanlar
 
await sadece async fonksiyonların içinde kullanılabilir.
JavaScript:
async function Deneme() {
    await page.click('[type=""]')
    await page.keyboard.type("dsafasdf");
}
 
Kelime aratmayı en son iş olarak yaptıracağım ilk başta girdileri yapacağım son olarak da ekranda istediğim yazı var mı yok mu ona baktıracağım ilk olarak nasıl girdileri yapabilirim aynı tarayıcı oturumunda olması gerekiyor cookiler gitmemesi için.

Bir de JavaScript için bildiğin kaynak var mı genel olarak detaylı bir kaynak.
 
Şimdi siz bir siteye gitmesini, çeşitli tuşlara basıp birşeyler yaptıktan sonra kelime aratmak mı istiyorsunuz. Tam olarak anlamadım.

Youtube freeCodeCamp, W3Schools vs. bakabilirsin.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…