Anasayfa » Forum

C# windows form app...
 

C# windows form application webden veri çekme  

  RSS
Burak yazici
(@Burakyazici)
Üye

Merhabalar,

 

 

Amacım sayfada bulunan isimleri çekip listbox"da göstermek ama class adını yazıp çekmeye çalışırken div"in içindeki "Ad Soyad :" listbox içine geliyor isimleri çekemiyorum. İsimleri alabilmem için ne yapmam gerekir.

 

Kodlar ise şöyle..:

/*/*/*Button-Click/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*

Uri url = new Uri("dnasıdıasdasdnasıdnada");
WebClient client = new WebClient();
string html = client.DownloadString(url);
HtmlAgilityPack.HtmlDocument dokuman = new HtmlAgilityPack.HtmlDocument();
dokuman.LoadHtml(html);
HtmlNodeCollection basliklar = dokuman.DocumentNode.SelectNodes("//div[@class='ad']");
foreach (var baslik in basliklar)
{
listBox1.Items.Add(baslik.InnerText);
}

/*//*/**/*Verinin çekileceği yerdeki html kodu/*/*/*/*/*/*/*/*/**/*/*/*/*/***///*//

<span>

    <div class="ad">Ad Soyad :</div>

                Engin dadasd//<--İstenilen veri

</span>

Alıntı
Gönderildi : 15/10/2017 05:12
Erdem SELÇUK
(@eravse)
Üye Forum Yöneticisi

Merhaba node olarak sız ad classını ıcerenlerı cagırıyorsunuz ama dıkkat edersenız ıstedıgınız verı span html ıcerısınde direk olarak span html içeriğini çekip regex ile temizlemeyi denemelisiniz

 

saygılar

 

CevapAlıntı
Gönderildi : 16/10/2017 11:30
Burak yazici
(@Burakyazici)
Üye

 

Aşağıdaki gibi yaptığımda döngüye almaya çalışıp itemleri listelemek istiyorum fakat aynı değer dönüp duruyor.

Bir türlü döngü içinde çalıştıramadım.Yardım ederseniz çok sevinirim.

/*/*/**/*/*/*Buton-olayı/*/*/*/*//*/*/*//*/*

try
{
WebRequest SiteyeBaglantiTalebi = HttpWebRequest.Create(url);
WebResponse GelenCevap = SiteyeBaglantiTalebi.GetResponse();
StreamReader CevapOku = new StreamReader(GelenCevap.GetResponseStream());
string KaynakKodlar = CevapOku.ReadToEnd();//<div class=\"entry\">
int IcerikBaslangicIndex = KaynakKodlar.IndexOf("<p>") + 3;
int IcerikBitisIndex = KaynakKodlar.Substring(IcerikBaslangicIndex).IndexOf("</p>");
string item1 = KaynakKodlar.Substring(IcerikBaslangicIndex, IcerikBitisIndex);
regexx(item1);
foreach (var item in item1)

{

listView1.Items.Add(item1);
}

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

*/*/*/*/**Html kısmı/*/*//**/*/*/*/*/**/*//*

<div class="entry"><p>

asdfgh(İstenilen bilgiler)

</p>

</div>

Arada farklı divler ve postlar

<div class="entry"><p>

asdfgh1(İstenilen bilgiler2)

</p>

</div>

 

 

 

 

SAYGILAR..

CevapAlıntı
Gönderildi : 17/10/2017 05:53
Jiyan Epözdemir
(@JiyanEpozdemir)
Üye

Merhaba,

Indexof ile her seferinde </p> kapanış tag’inin ilk görüldüğü yere kadar ki kısmı alıyorsunuz. LastIndexOf deneyin. Sorununuzu çözecektir.

CevapAlıntı
Gönderildi : 03/01/2018 02:56
Paylaş:

Lütfen Giriş yap yada Kayıt ol