C# İle Bot Yapımı – Web Sitelerinden İçerik Çekme
Her ne kadar etik olmasada programcıların hatta genellikle web site programcılarının en büyük hizmetkarı olacak olan içerik çekme botlarının yapımından bahsedeceğiz.Geçenlerde bir işimden dolayı yazmak zorunda olduğum bir bot için internette sürekli detaylı bir araştırmada bulundum.Yabancı sitelerde dahil olmak üzere genellikle <title> etiketi içindeki veriyi çeken programlarla örneklendirme yapılmış.Hatta çoğu sitede aynı kodlar alıntı edilmiş.Haliyle bende bu kodlar üzerinden yola çıkıp belirli değişiklikler neticesinde ihtiyacım olan botu geliştirebildim.Tabi bu yazımızda örneklendirme olarak <title> etiketinden başka bir alanın içeriğini çekmeyi göreceğiz.Bilmenizi isterim ki, algoritmik mantığınızı kurup kendi ihtiyacınız olan botları çok rahat bir şekilde oluşturabilirsiniz.Sadece biraz zahmet ve emek isteyen bir iştir.Şimdi gelin yazımızın içeriğini irdeleyelim.
İster Asp.NET ya da Asp.NET MVC mimarisi olsun, istersede C# masaüstü mimarisi farketmez.Sonuçta kodlarımız standart C# kodları olacağı için her .NET platformuna uygun çalışabilmektedir.Bu yüzden ben örnek olarak C# Console Application projesinde örneklendirme yapacağım.
Öncelikle içeriğin çekileceği web siteyi belirlememiz gerekmektedir.Ben kendi sitem olan http://www.gencayyildiz.com adresinden aşağıdaki görüntüde olan alanın bilgisini çekecek örnek bir program oluşturacağım.
Görüntüde de gördüğünüz gibi “Kod yazmak bir sanattır…” yazısını C# ile çekeceğiz.Programatik olarak mevzuya girmeden önce içeriğini çekeceğimiz sitenin kaynak kodlarını incelememiz gerekmektedir.
Kaynak kodlar için web sitesinde sağ tıklayarak “Sayfa kaynağını görüntüle” seçeneğine tıklamamız gerekmektedir.Karşımıza bu sitenin HTML/CSS/JavaScript vs. gibisinden kaynak kodları gelecektir.Bu kaynak kodların arasından ilgili alanı bulmamız gerekmektedir.
Yukarıdaki resimde gördüğünüz gibi çekeceğimiz içeriği kaynak kodlarında bulmuş olduk.
Şimdi buraya kadar tamam.Şimdi programatik olarak algoritmamızı kurup, bu kaynak kodlarındaki HTML/CSS kodlar arasından bu içeriğe nasıl ulaşacağımızı yapalım.
Öncelikle System.Net kütüphanesinde bulunan HttpWebRequest sınıfımız sayesinde http://www.gencayyildiz.com adresine bağlantı talebi yapalım.
WebRequest SiteyeBaglantiTalebi = HttpWebRequest.Create("http://www.gencayyildiz.com");
Gördüğünüz gibi bağlantı talebini WebRequest tipinden bir referansa atamış olduk.Şimdi bu talep neticesinde gelen cevabı WebResponse referansına alalım.
WebResponse GelenCevap = SiteyeBaglantiTalebi.GetResponse();
Şimdi gelen cevabı okuyalım.
StreamReader CevapOku = new StreamReader(GelenCevap.GetResponseStream());
Okuduğumuz cevabı System.IO kütüphanesinde bulunan StreamReader tipinden referansa atadık.
Şimdi StreamReader tipinden olan CevapOku isimli referansımızın temsil ettiği nesnemizde içerik çekeceğimiz sitenin bütün kaynak kodları bulunmaktadır.Bu kaynak kodları bir string tipten değişkene atamak daha kullanışlı olacaktır.
string KaynakKodlar = CevapOku.ReadToEnd();
Evet artık KaynakKodlar isimli string değişkenimizde içerik çekeceğimiz sitenin kaynak kodları mevcuttur.Bundan sonra string metodlarını kullanarak rahat rahat içeriğimizi çekebiliriz.
int IcerikBaslangicIndex = KaynakKodlar.IndexOf("<h6>") + 4;
Burada yaptığımız iş KaynakKodlar değişkeninde bulunan <h6> etiketinin index numarasına ulaşıp bu index numarasına +4 ekliyoruz.Bu +4 ün sebebi ise <h6> etiketi içindeki yazıyı alacağımızdan dolayı <h6> etiketinin karakter sayısınıda ekliyoruz ki sadece içindeki yazan yazıyı çekebilelim.Yani index numarası tam <h6> etiketinin bitişine, içinden de alacağımız içeriğin başlangıcına denk gelmektedir.
Şimdi sıra başlangıç indexi ile bitiş indexi arasındaki içeriği aldırmak için bitiş indexsini bulmakta.
int IcerikBitisIndex = KaynakKodlar.Substring(IcerikBaslangicIndex).IndexOf("</h6>");
Bizim çekmek istediğimiz değer <h6> ile </h6> arasında bulunduğundan dolayı bir önceki IcerikBaslangicIndex isimli değişken değerinden , </h6> etiketinin bitiş indexine kadar olan farkı alıyoruz.
Artık sıra bu indexler arasındaki değeri çekip ihtiyacımıza göre kullanmaya geliyor.
Console.WriteLine(KaynakKodlar.Substring(IcerikBaslangicIndex, IcerikBitisIndex));
Artık programımızı derleyip çalıştırdığımızda istediğimiz veriyi kaynak siteden çekip elde etmiş oluyoruz.
Gördüğünüz gibi bot yapımı bu kadar basit bir işlem.Tabi HTML/CSS kodları kompleks olan sitelerden içerik çekmek daha zor ve algoritmik emek isteyen bir iştir.Ama temel olarak bu yapıyı benimserseniz ihtiyacınızı karşılayacak her türlü botu oluşturabilirsiniz.
Bunu geliştirmek sizin elinizde..
Son kez kodların tam derlenmiş halini paylaşıp yazımızı sonlandırıyorum.
WebRequest SiteyeBaglantiTalebi = HttpWebRequest.Create("http://www.gencayyildiz.com"); WebResponse GelenCevap = SiteyeBaglantiTalebi.GetResponse(); StreamReader CevapOku = new StreamReader(GelenCevap.GetResponseStream()); string KaynakKodlar = CevapOku.ReadToEnd(); int IcerikBaslangicIndex = KaynakKodlar.IndexOf("<h6>") + 4; int IcerikBitisIndex = KaynakKodlar.Substring(IcerikBaslangicIndex).IndexOf("</h6>"); Console.WriteLine(KaynakKodlar.Substring(IcerikBaslangicIndex, IcerikBitisIndex)); Console.Read();
Faydalanmanız ve bir sonraki yazımda görüşmek dileğiyle…
İyi çalışmalar..
Merhabalar bu olayı kendim için geliştiriyorumda ama verileri çekerken nedense
Length cannot be less than zero.
Parameter name: length
startIndex cannot be larger than length of string.
Parameter name: startindex
hatalarını alıyorum bu hatalar neden kaynaklanıyor olabilir ?
Merhaba Fırat,
Anlaşılan SubString metodunu kullanırken bu hatayı alıyorsunuz.Büyük ihtimal SubString ile almaya çalıştığınız verinin karakter sınırını aşıyorsunuz.
Örneğin,
15 karakterli bir veride, 3. indexten başla 15 adımlık indexi getir derseniz eğer hata alırsınız.
Hocam resimleri nasıl çekiyoruz
Bu yöntemle sadece resmin ismini çekebiliriz sanırım değil mi?
Resimler sitenin dosyalarında durur
Bu resimleri nasıl alabiliriz?
Merhaba Abdullatif,
Resmin tam url’sini algıladıktan sonra C# İle İnternetten Dosya İndirme başlığındaki algoritmayı uygulayabilir ve istediğin konuma resimleri indirebilirsin.
Sevgiler.
güzelmiş ama detaylı degil
Ne yazık ki bu konu hakkında detaylı bir yazılı materyal hazırlamak imkansız ve oldukça zor bir durumdur.Temel işlevselliği kazandıktan sonra var olanla hareket edilmek hiçte zor olmasa gerek.Burada önemli olan detay değil, bu işin nasıl yapıldığıdır.Facebook ya da abc.com olsun ikisinede aynı temelde bot hazırlanır.İşte detay burada dallara ayrılmaktadır.Birisinde yüksek güvenlik varken, diğerinde basit işlemler geçerli olabilir.
Örneğin blog vb sitelerden içerik cekmenin yasal bir yaptırımı var diye biliyorum. Kisiye özel olmayan misal ingilizce kelime ve karsiliklarini vermis bir siteden bu bilgileri cekmenin bize ne gibi sakincalar dogurabilir bukonuda da ffikrini almak isterim
Bot hazırlamayı bilmek ya da hazırlamak illa yasaları ihlal etmek demek değildir.Tabi ki de ihlal konusu olan durumlar ya da içerikler olabilir.Ama bu tekniği yasal açıdan değil bir yazılımcı açısından görmekte, bir algoritma ve mantık süzgeci olduğu için bilmekte fayda var diye düşünüyorum.İkincisi her yazılan bot bir içerik çekmek zorunda değildir.Ya da çekilen her içerik bir başka platformda yayınlanmak zorunda değildir.Bilakis tarayıcı eşliğinde bir sitenin sayfalarını teker teker manuel bir şekilde gezerek botun yaptığını kendimizde yapabiliriz.İçeriğini kopyalayabilir, bilgisayarımızda özel bir konumda saklayabiliriz.Bot bizim manuel yaptığımızı daha dinamik(mekanik) bir şekilde ve seri yapabilmektedir(tabi basit bir işlevselliği baz alırsak).Söz konusu yayınlamaya gelince yasal durumlar devreye girebilir.Öncelikle bot hakkında bu açıdan bakabilmek lazım.
Tabi ki de alınan içeriğin izin hakları önemlidir.Alınan içerikler bir yerde yayınlanma koşuluyla yasal bir korunumda olabilir.Aksi halde sadece kendi bilgisayarınızda bu içerikleri tutacaksanız bunların bir yasal çerçevesi olduğunu hiç sanmıyorum.Sakınca doğurabilecek yasal durumlar hakkında hukuksal hiç bir bilgim ne yazık ki bulunmamaktadır…
Saygılarımla…
javascript ile yüklenen dinamik html kaynak kodlarını nasıl çekeceğimizi anlattığınız bir yazınız mevcut mudur?
Hayır.
Bu konunun cevabını arıyorum bende 9 yıl önce sormuşsunuz öğrenebildinizmi
Giris yapilarak erisilen bir sayfadan veri cekmek istersek nasil bir yol uygulamamiz gerekiyor
Programatik olarak giriş yapmak oldukça zahmetli iş olacaktır.Giriş yaptıktan sonra otorum açık olduğu sürece belirtilen işlemleri gerçekleştirebilirsiniz.
Kuzenimle birlikte yapabilirmiyiz diye başladığımız deneme amaçlı bir android uygulama yaptık. Uygulama vidtomp3 sitesinden youtube videolarını sese dönüştürecek. Elbette zaten var diyeceksiniz. Evet var ama biz değişik özellikler katacağız. Hatta ilk olacak.Javascript ve c# ile yaptık. Ses cevirisi icin link kopyalayip yapistirdiktan sonra ceviri islemi icin 3 tik gerekiyor. Cevir-yonlendir-indir gibi. Ama arada site reklam cikardigi icin reklama tiklamayla tik sayisi 4 e cikiyor. Bunu asmaya calisiyoruz. Asmanin uzunca yolu var. Ama kestirme yapicaz… Ama sunu gordum javascript diger dillerden daha insancil 😉 resmen bizi anliyor ve anlatiyor
Yolunuz uzun, çalışmaya devam 🙂 Kolay gele…
üstat ben sitedeki tüm sayfaların kaynak kodlarını çekmek istiyorum ama yapamadım. sadece sitenin domain.com bilgisi ile sitede bulunan tüm sayfaların kaynaklarını çeken bir kod arıyorum ama bulamadım stack overflow dan da baktım ama tam çözemedim olayı bir internet sitesinde (sayfa değil sayfayı yapabiliyorum. tüm site) bulunan mail adreslerini çekmek için yazılım yapmaya çalışıyorum. tabi bunu geliştirip site içerisindeki linklerin de bulunduğu domainlere açılıp 1.2.3. …. dereceden linki olan tüm domainlerdeki tüm mail adreslerini çekmek istiyorum ama işin içinden çıkamadım açıkçası saadece bir sayfadan çekebiliyorum içerisinde bulunan linkleri ve mailleri .. yardımcı olabilirmisin
peki bu yöntemle twitter yada facebook gibi bir siteden kişiye göre bilgi çekebilir miyim mesela bir kaç profilin neler yaptığını liste şeklinde cevap bekliyorum deniyorum ama yapamadım acaba yanlış yaptığım birşey mi var
Sorun o kadar açık ki ne yazsam bilemedim.Lütfen öncelikle sorunda neyi istediğini anlamlı bir şekilde yaz.Öyle soruyu baştan sağma yazıp benim tahmin etmemi beklemen olmaz.
Merhabalar,
Öncelikle değerli paylaşımlarınız için teşekkürler..
Bir sorun var aşamadığım bu konuda, yazınızdan faydalanarak basitçe bir siteden içerik çekmek istiyorum.. Ancak denemediğim yöntem kalmadı neredeyse fakat bir bir türlü Türkçe karakter sorunun çözemiyorum.. ark. intel. com/tr sitesinden h3 içerisindeki veriyi okumaya çalışıyorum fakat küçük harfli Türkçe karakterler “Masaüstü Bilgisayar İşlemcileri” şekildeki gibi bozuk geliyor. Normalde sitede düzgün görünüyor fakat ctrl+u ile source koda manuel baktığımda da aynı yer bozuk görünüyor. Konu hakkında fikriniz bilginiz var mı acaba? Yardımcı olabilirseniz çok sevinirim.. Saygılarımla..
Merhaba Hüseyin Bey,
Tarayıcılarda kaynak kodlardaki bozuk karakterler görüntü olarak ekranda gayet normal çıkabiliyorlar.Bu durumda siz bot yazarken işiniz kaynak kodlarla olduğu için, kaynaktaki bozuk karakterleri elde etmeniz gayet normal.
Bu soruna çözüm olarak yapabileceğiniz yöntem ise bozuk karakterleri düzeltecek bir metod oluşturmayı düşünebilirsiniz.
İyi çalışmalar dilerim…
Merhaba hocam ilgi ve hızlı cebap için teşekkürler, sorunu halletim.
Veriyi çektikten sonra “veri = System.Net.HttpUtility.HtmlDecode(veri);” yaptığımda düzeldi.. çok aradım arayan vardır belki..
İşte ben böyle etkileşim de olan ve banada birşey öğreten okuyucularımı seviyorum. 🙂
Teşekkür ederiz Hüseyin Bey…
Sağlıcakla kalın.
Benimde çok işime yaradı, çok sağol dostum (:
Ne demek (:
veriyi çektikten sonra “veri = System.Net.HttpUtility.HtmlDecode(veri);” yaptığımda düzeldi.. çok aradım arayan vardır belki..
Her ne kadar bot yazma konusuna giriş gibi gözüksede sitenin tamamından istediğimiz veriyi nasıl çekeceğimize güzel bir örnek olmuş. Verdiğiniz bilgiler için teşekkürler.
Ben teşekkür ederim Hakan Bey.
internetten veri çekebiliyoruz ama acaba internete veri ekleyebilir mşyşz?
Güzel soru 🙂
Elbet vardır bir yolu… 😉
Peki nedir o yol 😀
http://www.netomatix.com/httppostdata.aspx
https://msdn.microsoft.com/en-us/library/debx8sh9.aspx
http://forum.ceviz.net/showthread.php?t=97213
Göz atınız…
Özcan Bunu beğendi 🙂
Gençay Buna Sevindi 🙂
Öncelikle merhabalar veri çekme işini C dili ile yapabilirmiyim? yaparsamda algoritmam ve metodlarım çok farklı olurmu? şimdiden teşekkür ederim..
Merhaba Ca Bey
Algoritma aynı mantıkta olabilir lakin C dilindeki eşdeğer metodları incelemeniz gerekecektir. Çok fark olmaz. Sadece burada değişken tipinin C deki karşığını bulmanız ve kullanış farkını gözetmeniz yeterli olacaktır.
Saygılar…
Çok Teşekkürler
Hocam bilginizi paylaştığınız için teşekkürler benim sorum siz etiketini çekmişsiniz ben örneğin 1564 tablosundaki 1564’ü nasıl çekebilirim.
Cevabınızı bekliyorum iyi çalışmalar.
td class=gencayhit 1564
Size anlatacaklarımın yukarıdaki içerikten bir farkı olmayacaktır.
merhaba yazınız cok faydalı fakat bot olayını yeni yeni kavrayabiliyorum söyleki ben mesela cekicem ama birde class özelliğini belirtmek isitoyrum yani h2 nin sadece belirttiğim class ında bulunanları bunu nasıl yapabilirim
Merhaba Ebru Hanım,
Sorunuzun cevabı tasarımın kaynak kodlarına özel olarak tasarlanmış bir algoritmadan ibarettir. Haliyle genel mantık olarak verilecek cevap bu makalenin içeriği olmakla beraber, sorunuza özel olarak örnek bir algoritma geliştirmek gerekecektir. Buda çalışmayı tasarıma göre şekillendireceği için biraz daha kompleksleştirecektir ve şuanda isteğiniz özel duruma göre örnek verebilmem mümkün gözükmemektedir.
Saygılarımla…
S.a Size Bir Soru Sormak İstiyorum
Forum Yorum Botu Yapıcamda Nasıl Yapıcağımı Bilmiyorum Sizde Kodları Var mı
Forum yorum botu kodları diye birşey yoktur. Programlamayı bilirsin. İhtiyaç ve hedef neyse ona göre yazılımı işlersin. Eğer yaklaşımın buysa, bilgin değil bot yazmaya daha değişken oluşturacak seviyede değilse ve herşeyden öte Türkçe imla bilgin zayıfsa sana tek tavsiyem yol yakınken gel bu sevdadan vazgeç!
merhaba değerli paylaşımlarınız için öncelikle teşekürler benim sorum şu bot yazarken CAPTCHA (Şahıs Denetim) Kodu var sizin bloğunuzda da olduğu gibi ben bunu elde edip otomatik girilmesini ve işleme devam etmesini istiyorum bu konuda bana yardımcı olursanız çok sevinirim
Size nasıl yardımcı olabilirim?
CAPTCHA (Şahıs Denetim) Kodunu ve text kutucuğunu webbrowserda göstermek istiyorum sadece o alanları bu mümkünmüdür
selamun aleyküm çözümü buldum aşağıdaki gibi yapınca işime yaradı webBrowser1’in DocumentCompleted eventine webBrowser1.Document.Window.ScrollTo(400, 400); yazınca oldu
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document.Window.ScrollTo(400, 400);
}
Bulduğunuz çözümü paylaştığınız için teşekkürler…
hocam bi konuda daha acil yardımınıza ihtiyacım var bi arkadaş visual basicde bi kod yazmış bunu c# duyarladım çalışmıyor aynı kodu visual basicde yazıyım dedim ordada böyle bir tanım yok diyor bu kodu c# da çalışacak şekilde nasıl yaparım lütfen bunu haftalardır araştırıyorum unsafe kullandım proje özelliklerden falan gerekli yeri seçtim pointer kullanmak için bu kodu olduğu gibi kullanınca şu hataları veriyor sizden ricam bunu nasıl c# ta kullanabilirim bana yardımcı olursanız çok memnun kalırım iyi çalışmalar
Hata CS0266 ‘int’ türü örtülü olarak ‘byte’ türüne dönüştürülemez. Açık bir dönüştürme var (eksik atamanız mı var?)
Hata CS1547 ‘void’ anahtar sözcüğü bu bağlamda kullanılmaz
void* ptr = stackalloc void[5];
while (true)
{
((byte*)ptr)[4] = ((this.WebBrowser1.ReadyState != WebBrowserReadyState.Complete) ? 1 : 0);
if (*(sbyte*)((byte*)ptr + 4) == 0)
{
break;
}
Application.DoEvents();
}
ŞU ŞEKİLDE YAPINCA HATA VERMİYOR FAKAT ÇALIŞMIYOR HOCAM Bİ BAKRMISINIZ RİCA ETSEM LÜTFEN
void* ptr = stackalloc int[5];
while (true)
{
((int*)ptr)[4] = ((webBrowser1.ReadyState != WebBrowserReadyState.Complete) ? 1 : 0);
if (*(sbyte*)((byte*)ptr + 4) == 0)
{
break;
}
Application.DoEvents();
}
Muhsin Bey,
Sorunuzu anlayamadım. Lütfen daha detaylı izah eder misiniz?
Şuraya göz atmanı öneririm.
onlara baktım şu hatayı alıyorum
Hata CS1547 ‘void’ anahtar sözcüğü bu bağlamda kullanılmaz
Kardeş nerede ne çevirdin de bu böyle oldu daha güzel ve net izah edebilirsen bende olayı rahat takip edebilirim. Karman çorman tek tek yorum bırakacağına tek seferde rapor şeklinde izah et.
CONVERSION ERROR: Code could not be converted. Details:
— line 1 col 1: EOF expected
Please check for any errors in the original code and try again.
dediğiniz yerde de çevirme işlemi yapınca yukardaki hatayı veriyor
selamun aleyküm bayağı bir araştırmadan sonra sorunumu hallettim çözümü buldum CAPTCHA (Şahıs Denetim) Kodunu webBrowser1’den olduğu gibi değişmeden çekmek için aşağıdaki kodu webBrowser1_DocumentCompleted’e Event’ine yazmamız yeterli hayırlı günler saygılar birisine mutlaka lazım olacaktır mutlaka
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
object objectValue = RuntimeHelpers.GetObjectValue(NewLateBinding.LateGet(NewLateBinding.LateGet(this.webBrowser1.Document.DomDocument, null, “bOdy”, new object[0], null, null, null), null, “createControlRange”, new object[0], null, null, null));
NewLateBinding.LateCall(objectValue, null, “Add”, new object[]
{
RuntimeHelpers.GetObjectValue(this.webBrowser1.Document.Images[2].DomElement)
}, null, null, null, true);
NewLateBinding.LateCall(objectValue, null, “execCommand”, new object[]
{
“Copy”
}, null, null, null, true);
this.pictureBox4.Image = Clipboard.GetImage();
}
Teşekkürler.
Sitenizi ilgi ile takip ediyorum. Bilgiler icin tesekür ederim.
Her zaman beklerim.
Sevgilerimle…
Peki birden fazla etiketleri olsaydı ve ben hepsini tek tek çekmeye çalışsam nasıl bir yol izlemem gerekiyor. Yani:
Merhaba dünyalılar
Kod yazmak güzeldir
Yeni bir güne merhaba…
böyle bir şey olsaydı bunları nasıl çekebilirim
Artık o noktada algoritmanızı konuşturmanız gerekmektedir. Bizler en fazla başlangıç boyutunda bir anlatım sergileyebiliriz.
Sevgiler…
Merhaba bu yolla internet sitesi üzerinde ki son yazıları mvc de direk dropdown içerisine ekleyteblirmiyiz. Fakat yazının başlığı na göre içeriğide arkada tutucaz seçince gelicek
dinamik siteden nasıl veri çekcez
sorgu nasıl yapılınıyor
Merhaba. HtmlAgilityPack ile siteden veri alabiliyorum fakat sayfalama(pagination) olan sitelerden yalnızca ilk sayfayı alabiliyorum. Diğer sayfaları da alabileceğim bir metot var mıdır? 40-50 sayfalık bir içerikte, tüm sayfalardan veri almak istiyorum.
Merhaba,
Genellikle bot yazılımlarında diğer sayfalara yönlendirme yapabilmek için sayfalar arası url kombinasyonunu çözümleyerek üzerine algoritma geliştirmek yeterli olmaktadır.
Örneğin;
https://www.gencayyildiz.com/blog/category/c-sharp-c/ adresini baz alırsak bir sonraki sayfa,
https://www.gencayyildiz.com/blog/category/c-sharp-c/page/2/ şeklinde ve bir sonraki sayfa,
https://www.gencayyildiz.com/blog/category/c-sharp-c/page/3/ şeklinde olmaktadır. Ve kombinasyon bu şekilde devam etmektedir.
Her bir sayfada sayfa kaynakları aynı olacağından dolayı HtmlAgilityPack kütüphanesinde oluşturduğunuz kombinasyon değişmeksizin sizlere ilgili verileri getirecektir. Sizin sadece yapmanız gereken her sayfada veriler elde edildikten sonra bir sonraki sayfaya istek gönderip elde edilen sonuç üzerinde tekrar HtmlAgilityPack algoritmasını devreye sokmaktır.
Kolay gelsin…
http://www.denemeurl.com/page/1/ şeklindeki url’yi for döngüsü içerisinde her defasında bir arttırıp ekrana getirmeye çalıştığımda,yalnızca son sayfanın görüntüsünü döküyor. Nerede hata yapıyorum?
Bu şekilde olay çok teoride kalıyor. Örnek kod bloğu gönderirseniz inceleyebilirim.
For kullanımını yanlış yapmışım, o sebeple getiremiyormuşum teşekkürler yine de 🙂 Bir sorum daha olacak. Kaynağında Javascript olan bir siteden veri getirebilmek mümkün mü? Web browser mı kullanmam gerekiyor? Nasıl bir yol izlemeliyim
Şu makaleye buyrun 🙂
Merhabalar,
C# ile mesela bir site içinde post işleminden sonra veri geldiğini varsayalım böyle bir site için konuşursak eğer buradan veri çekmek için nasıl bir yol izlemeliyiz. yani bota form işlemleri nasıl yaptırabiliriz
Merhaba,
Şuradaki makaleye göz atmanızı tavsiye ederim.
Kolay gelsin.
Merhabalar. Farklı bir kaç siteden aynı ürün için fiyat karşılaştırma yapabiliyor muyuz bu yöntemle?
Merhaba,
Burada temel mantık anlatılmaktadır. Bu mantık üzerinden özelleştirilmiş her türlü verisel işlemleri gerçekleştirebileceğiniz gibi tabi ki de özel algoritma geliştirerek istediğiniz karşılaştırmayı da sağlayabilirsiniz.
Sevgiler.
merhabalar konu biraz eski bi konu ama bir sorum olucaktı bu şekilde başka bir siteye nasıl fotoğraf video upload ederim veya upload etmek için ne kullanmalıyım?