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.En alta yazıyorum function eklemeden ama siz koyabilir misiniz bu koda bu sistemi.
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);
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.Evet aynen öyle.
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.URL bazlı aratma olmadan aratma yapamıyor muyuz crhomium sekmesinde örnek sekme 1'deki sayfayı aratma gibi bir şey.
await page.goto(url, {
waitUntil: "domcontentloaded",
});
//İşlemleri bu kısma kodlayabilirsiniz.
const content = await page.content();
await page.goto(url, {
^^^^^
SyntaxError: await is only valid in async functions and the top level bodies of modules
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();
Onun üstüne değil işte belirttiğim yere koyacaksınız. Direk fonksiyonun içine. Fonksiyonda sayfaya gitme işlemini yaptıktan sonraJavaScript: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.
page.content()
almadan önce yapmalısınız. Yukarda belirttim aslında.Şuan en son onu yapıyor ve dosyaya yazıyor zaten.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.
await kullandığınızdan emin misiniz? İşlemleri yollarsanız bir de ben deneyim.Hayır dediğin yere işlemleri ekledim fakat önce kelimeyi aramak için giriyor sonrasında istediğim işlemleri yapıyor.
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.