Çözüldü Node.JS ile web sayfasından çekilen verideki kodları temizleme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Mucosoft

Megapat
Katılım
5 Mart 2014
Mesajlar
5.523
Makaleler
12
Çözümler
41
Bir test uyguluyorum. Kendi web sitemde GET metodu ile veri çekmeye çalışıyorum. Veri sayfada yazı olarak gözüküyor. Ben bu veriyi çekerken arka plandaki kodlar da çekiliyor. Birkaç deneme ile çoğunu kaldırdım ama şimdi de şöyle gözüküyor:
1644495600124.png

Bu kalanları nasıl kaldıracağım veya farklı olarak ne yapabilirim? Node.js kütüphanesi önerisi istemiyorum. Kendim kodlamak istiyorum.
JavaScript:
var http = require('http');
function RemoveHTML(Data)
{
    Data = Data.replace( /(<([^>]+)>)/ig, '');
    Data = Data.replace( /({([^>]+)})/ig, '');
    return Data;
}
var options = {
    host: 'technopat.net',
    path: '/HebeleHübele'
}
var request = http.request(options, function (res)
{
    var Data = '';
    res.on('data', function (chunk)
    {
        Data += chunk;
    });
    res.on('end', function ()
    {
        console.log(RemoveHTML(Data));
    });
});
request.on('error', function (e)
{
    console.log(e.message);
});
request.end();
 
Çözüm
Peki belirli bir xpath olacak mı yoksa sayfadaki tüm yazılar mı olacak. Daha da detaylandırırsam,
Yani sayfada belirli bir alanı mı almak istiyorsun yoksa sayfadaki her yazıyı mı?
Sayfadaki her yazıyı.

Yaptığım araştırmalardan sonra kodu istediğim kıvama getirdim. Bu kod ifadelerin arasındaki boşlukları silmiyor. Diğer boşlukları kaldırıyor. Tabii bu sayfaya özel kod olduğu için kullanıcıların güncellemesi gerekebilir.
JavaScript:
function RemoveHTML(Data)
{
    Data = Data.replace( /(<([^>]+)>)/ig, '');
    Data = Data.replace( /({([^>]+)})/ig, '');
    Data = Data.replace( 'var about_info = 0;', '');
    Data = Data.replace( 'clickable = false;', '');
    Data = Data.replace( 'window.dataLayer = window.dataLayer || [];', '');
    Data = Data.replace( 'function gtag()', '');
    Data = Data.replace( /(\r\n|\n|\r)/gm, '');
    Data = Data.replace( /^\s+|\s+$/gm, '');
    return Data;
}
Örneğin bir web sitesinde div içeriği mi çekmek istiyorsun. Tam olarak anlamadım da, biraz daha açıklarsan yardımcı olabilirim.
 
Örneğin bir web sitesinde div içeriği mi çekmek istiyorsun. Tam olarak anlamadım da, biraz daha açıklarsan yardımcı olabilirim.
Ham veri çekmek istiyorum. Yani etiket olmayacak. Yalnızca sayfada görünen yazıları çekmek istiyorum. Örneğin web sayfasında 1 yazıyor. Bunu çekecek. Kısacası ön plandaki tüm yazılar alınacak.
1644497956312.png
 
Peki belirli bir xpath olacak mı yoksa sayfadaki tüm yazılar mı olacak. Daha da detaylandırırsam,
Yani sayfada belirli bir alanı mı almak istiyorsun yoksa sayfadaki her yazıyı mı?
 
Peki belirli bir xpath olacak mı yoksa sayfadaki tüm yazılar mı olacak. Daha da detaylandırırsam,
Yani sayfada belirli bir alanı mı almak istiyorsun yoksa sayfadaki her yazıyı mı?
Sayfadaki her yazıyı.

Yaptığım araştırmalardan sonra kodu istediğim kıvama getirdim. Bu kod ifadelerin arasındaki boşlukları silmiyor. Diğer boşlukları kaldırıyor. Tabii bu sayfaya özel kod olduğu için kullanıcıların güncellemesi gerekebilir.
JavaScript:
function RemoveHTML(Data)
{
    Data = Data.replace( /(<([^>]+)>)/ig, '');
    Data = Data.replace( /({([^>]+)})/ig, '');
    Data = Data.replace( 'var about_info = 0;', '');
    Data = Data.replace( 'clickable = false;', '');
    Data = Data.replace( 'window.dataLayer = window.dataLayer || [];', '');
    Data = Data.replace( 'function gtag()', '');
    Data = Data.replace( /(\r\n|\n|\r)/gm, '');
    Data = Data.replace( /^\s+|\s+$/gm, '');
    return Data;
}
 
Çözüm

Yeni konular

Geri
Yukarı