","headline":"cSharp' da WebClient ile Html Parse İşlemleri Nasıl Yapılır?","mainEntity":{"@type":"Question","name":"cSharp' da WebClient ile Html Parse İşlemleri Nasıl Yapılır?","url":"https://uzmanim.net/soru/csharp-da-webclient-ile-html-parse-islemleri-nasil-yapilir/796","author":{"@type":"Person","name":"emkoroglu"},"comment":[],"commentCount":0,"dateCreated":"2013-10-03T16:31:18.547+03:00","dateModified":"2017-12-04T15:19:38.63+03:00","datePublished":"2013-10-03T16:31:18.547+03:00","keywords":["c#","webclient","htmlagilitypack","htmlnode","veri çekmek"],"publisher":{"@type":"Organization","name":"uzmanim.net","url":"https://uzmanim.net"},"text":"
Bir websitesinden WebClient sınıfını kullanarak resimleri nasıl indirebilirim ve Html etiketlerine nasıl ulaşabilirim?
Öncelikle HtmlAgilityPack kütüphanesimizi kullanabilmek için .dll dosyasını projenize import etmemiz gerekiyor. HtmlAgilityPack.dll
using HtmlAgilityPack; // HtmlAgilityPack namaspace tanımladık.
WebClient wc = new WebClient(); // webclient sınıfımızı tanımladık\r\nstring webSite = wc.DownloadString(\"http://www.uzmanim.net\"); // Kaynak kodunu indirmek istediğimiz websitesini yazıyoruz.
İkincisi XPATH nasıl kullanılır onu öğrenmeniz gerek.Html Agility Pack kullanacağız.Örneğin yukarıda yazmış olduğumuz websitesinin kaynak kodu aşağıdaki gibi varsayalım.
<table id=\"image\">\r\n<tr>\r\n<td class=\"bir\"><img src=\"uzmanim.net/deneme1.jpg\"/></td>\r\n</tr>\r\n<tr>\r\n<td class=\"bir\"><img src=\"uzmanim.net/deneme2.jpg\"/></td>\r\n</tr>\r\n<tr>\r\n<td class=\"bir\"><img src=\"uzmanim.net/deneme3.jpg\"/></td>\r\n</tr>\r\n</table>
XPATH kullanarak şu işlemleri yapabiliriz;
//table /*Bütün table'ları alır*/
//table[@id='image'] /*ID' si image olan table'ı alır*/
//table[@id='image']/tr /*ID 'si image olan tablonun içirisindeki tr' leri alır*/
//table[@id='image']/td[@class] /* ID'si image olan tablonun içerisindeki td'lerden sadece class'a sahip olanları alır*/
//table[@id='image']/td[@class='bir'] /*ID'si image olan table'nin içersindeki td 'lerden sadece class'ı \"bir\" olanları getirir */
Öncelikle string olarak indirdiğimiz websitesinin kaynak kodlarını, HtmlDocument oluşturarak parse işlemini gerçekleştireceğiz.
HtmlAgilityPack.HtmlDocument hd = new HtmlDocument();\r\nhd.LoadHtml(webSite); // indirmiş oldugumuz kaynak kodu değşkenini(webSite) kullanıyorum
HtmlDocument'in DocumentNode adlı bir property'si vardır ve html'deki bütün elementleri içerisinde bulundurur.SelectNodes metodu ile de XPATH kodundaki istenilen node çekilir ve kullanılır.
HtmlNodeCollection hnc = hd.DocumentNode.SelectNodes(\"//table[@id='image']/td[@class='bir']\"); // kaynak kodumuzda ID'si \"image\" olan ve td nin class'ı bir olanları getirdik
td tag'ın elementlerine ulaşabilmek için HtmlNode kullanıyoruz.
foreach (HtmlNode hn in hnc)\r\n{\r\n string imgHref = \"http://\"+ hn.Attributes[\"src\"].Values; // img tag'ın src değerlerini imgHref değişkenine attık.\r\n string imageName = imgHref.SubString(imgHref.LastIndexOf('/')+1,imgHref.Length-imgHref.LastIndexOf('/')-1); /* resim url'sinden resim adını SubString ile aldık */\r\n string dosyaYol = @\"image\\\"; // resmin indirilecegi konum\r\n\r\n using (WebClient imgDown = new WebClient())\r\n {\r\n imgDown.DownloadFile(imgHref , dosyaYol+imageName);\r\n }\r\n\r\n}
","url":"https://uzmanim.net/soru/csharp-da-webclient-ile-html-parse-islemleri-nasil-yapilir/796#a797","author":{"@type":"Person","name":"emkoroglu"},"comment":[],"commentCount":0,"dateCreated":"2013-10-03T16:31:53.937+03:00","dateModified":"2013-10-03T16:41:16.093+03:00","text":"
Öncelikle HtmlAgilityPack kütüphanesimizi kullanabilmek için .dll dosyasını projenize import etmemiz gerekiyor. HtmlAgilityPack.dll
using HtmlAgilityPack; // HtmlAgilityPack namaspace tanımladık.
WebClient wc = new WebClient(); // webclient sınıfımızı tanımladık\r\nstring webSite = wc.DownloadString(\"http://www.uzmanim.net\"); // Kaynak kodunu indirmek istediğimiz websitesini yazıyoruz.
İkincisi XPATH nasıl kullanılır onu öğrenmeniz gerek.Html Agility Pack kullanacağız.Örneğin yukarıda yazmış olduğumuz websitesinin kaynak kodu aşağıdaki gibi varsayalım.
<table id=\"image\">\r\n<tr>\r\n<td class=\"bir\"><img src=\"uzmanim.net/deneme1.jpg\"/></td>\r\n</tr>\r\n<tr>\r\n<td class=\"bir\"><img src=\"uzmanim.net/deneme2.jpg\"/></td>\r\n</tr>\r\n<tr>\r\n<td class=\"bir\"><img src=\"uzmanim.net/deneme3.jpg\"/></td>\r\n</tr>\r\n</table>
XPATH kullanarak şu işlemleri yapabiliriz;
//table /*Bütün table'ları alır*/
//table[@id='image'] /*ID' si image olan table'ı alır*/
//table[@id='image']/tr /*ID 'si image olan tablonun içirisindeki tr' leri alır*/
//table[@id='image']/td[@class] /* ID'si image olan tablonun içerisindeki td'lerden sadece class'a sahip olanları alır*/
//table[@id='image']/td[@class='bir'] /*ID'si image olan table'nin içersindeki td 'lerden sadece class'ı \"bir\" olanları getirir */
Öncelikle string olarak indirdiğimiz websitesinin kaynak kodlarını, HtmlDocument oluşturarak parse işlemini gerçekleştireceğiz.
HtmlAgilityPack.HtmlDocument hd = new HtmlDocument();\r\nhd.LoadHtml(webSite); // indirmiş oldugumuz kaynak kodu değşkenini(webSite) kullanıyorum
HtmlDocument'in DocumentNode adlı bir property'si vardır ve html'deki bütün elementleri içerisinde bulundurur.SelectNodes metodu ile de XPATH kodundaki istenilen node çekilir ve kullanılır.
HtmlNodeCollection hnc = hd.DocumentNode.SelectNodes(\"//table[@id='image']/td[@class='bir']\"); // kaynak kodumuzda ID'si \"image\" olan ve td nin class'ı bir olanları getirdik
td tag'ın elementlerine ulaşabilmek için HtmlNode kullanıyoruz.
foreach (HtmlNode hn in hnc)\r\n{\r\n string imgHref = \"http://\"+ hn.Attributes[\"src\"].Values; // img tag'ın src değerlerini imgHref değişkenine attık.\r\n string imageName = imgHref.SubString(imgHref.LastIndexOf('/')+1,imgHref.Length-imgHref.LastIndexOf('/')-1); /* resim url'sinden resim adını SubString ile aldık */\r\n string dosyaYol = @\"image\\\"; // resmin indirilecegi konum\r\n\r\n using (WebClient imgDown = new WebClient())\r\n {\r\n imgDown.DownloadFile(imgHref , dosyaYol+imageName);\r\n }\r\n\r\n}
","upvoteCount":2},"answerCount":1,"suggestedAnswer":{"@type":"Answer","name":"
Öncelikle HtmlAgilityPack kütüphanesimizi kullanabilmek için .dll dosyasını projenize import etmemiz gerekiyor. HtmlAgilityPack.dll
using HtmlAgilityPack; // HtmlAgilityPack namaspace tanımladık.
WebClient wc = new WebClient(); // webclient sınıfımızı tanımladık\r\nstring webSite = wc.DownloadString(\"http://www.uzmanim.net\"); // Kaynak kodunu indirmek istediğimiz websitesini yazıyoruz.
İkincisi XPATH nasıl kullanılır onu öğrenmeniz gerek.Html Agility Pack kullanacağız.Örneğin yukarıda yazmış olduğumuz websitesinin kaynak kodu aşağıdaki gibi varsayalım.
<table id=\"image\">\r\n<tr>\r\n<td class=\"bir\"><img src=\"uzmanim.net/deneme1.jpg\"/></td>\r\n</tr>\r\n<tr>\r\n<td class=\"bir\"><img src=\"uzmanim.net/deneme2.jpg\"/></td>\r\n</tr>\r\n<tr>\r\n<td class=\"bir\"><img src=\"uzmanim.net/deneme3.jpg\"/></td>\r\n</tr>\r\n</table>
XPATH kullanarak şu işlemleri yapabiliriz;
//table /*Bütün table'ları alır*/
//table[@id='image'] /*ID' si image olan table'ı alır*/
//table[@id='image']/tr /*ID 'si image olan tablonun içirisindeki tr' leri alır*/
//table[@id='image']/td[@class] /* ID'si image olan tablonun içerisindeki td'lerden sadece class'a sahip olanları alır*/
//table[@id='image']/td[@class='bir'] /*ID'si image olan table'nin içersindeki td 'lerden sadece class'ı \"bir\" olanları getirir */
Öncelikle string olarak indirdiğimiz websitesinin kaynak kodlarını, HtmlDocument oluşturarak parse işlemini gerçekleştireceğiz.
HtmlAgilityPack.HtmlDocument hd = new HtmlDocument();\r\nhd.LoadHtml(webSite); // indirmiş oldugumuz kaynak kodu değşkenini(webSite) kullanıyorum
HtmlDocument'in DocumentNode adlı bir property'si vardır ve html'deki bütün elementleri içerisinde bulundurur.SelectNodes metodu ile de XPATH kodundaki istenilen node çekilir ve kullanılır.
HtmlNodeCollection hnc = hd.DocumentNode.SelectNodes(\"//table[@id='image']/td[@class='bir']\"); // kaynak kodumuzda ID'si \"image\" olan ve td nin class'ı bir olanları getirdik
td tag'ın elementlerine ulaşabilmek için HtmlNode kullanıyoruz.
foreach (HtmlNode hn in hnc)\r\n{\r\n string imgHref = \"http://\"+ hn.Attributes[\"src\"].Values; // img tag'ın src değerlerini imgHref değişkenine attık.\r\n string imageName = imgHref.SubString(imgHref.LastIndexOf('/')+1,imgHref.Length-imgHref.LastIndexOf('/')-1); /* resim url'sinden resim adını SubString ile aldık */\r\n string dosyaYol = @\"image\\\"; // resmin indirilecegi konum\r\n\r\n using (WebClient imgDown = new WebClient())\r\n {\r\n imgDown.DownloadFile(imgHref , dosyaYol+imageName);\r\n }\r\n\r\n}
","url":"https://uzmanim.net/soru/csharp-da-webclient-ile-html-parse-islemleri-nasil-yapilir/796#a797","author":{"@type":"Person","name":"emkoroglu"},"comment":[],"commentCount":0,"dateCreated":"2013-10-03T16:31:53.937+03:00","dateModified":"2013-10-03T16:41:16.093+03:00","text":"
Öncelikle HtmlAgilityPack kütüphanesimizi kullanabilmek için .dll dosyasını projenize import etmemiz gerekiyor. HtmlAgilityPack.dll
using HtmlAgilityPack; // HtmlAgilityPack namaspace tanımladık.
WebClient wc = new WebClient(); // webclient sınıfımızı tanımladık\r\nstring webSite = wc.DownloadString(\"http://www.uzmanim.net\"); // Kaynak kodunu indirmek istediğimiz websitesini yazıyoruz.
İkincisi XPATH nasıl kullanılır onu öğrenmeniz gerek.Html Agility Pack kullanacağız.Örneğin yukarıda yazmış olduğumuz websitesinin kaynak kodu aşağıdaki gibi varsayalım.
<table id=\"image\">\r\n<tr>\r\n<td class=\"bir\"><img src=\"uzmanim.net/deneme1.jpg\"/></td>\r\n</tr>\r\n<tr>\r\n<td class=\"bir\"><img src=\"uzmanim.net/deneme2.jpg\"/></td>\r\n</tr>\r\n<tr>\r\n<td class=\"bir\"><img src=\"uzmanim.net/deneme3.jpg\"/></td>\r\n</tr>\r\n</table>
XPATH kullanarak şu işlemleri yapabiliriz;
//table /*Bütün table'ları alır*/
//table[@id='image'] /*ID' si image olan table'ı alır*/
//table[@id='image']/tr /*ID 'si image olan tablonun içirisindeki tr' leri alır*/
//table[@id='image']/td[@class] /* ID'si image olan tablonun içerisindeki td'lerden sadece class'a sahip olanları alır*/
//table[@id='image']/td[@class='bir'] /*ID'si image olan table'nin içersindeki td 'lerden sadece class'ı \"bir\" olanları getirir */
Öncelikle string olarak indirdiğimiz websitesinin kaynak kodlarını, HtmlDocument oluşturarak parse işlemini gerçekleştireceğiz.
HtmlAgilityPack.HtmlDocument hd = new HtmlDocument();\r\nhd.LoadHtml(webSite); // indirmiş oldugumuz kaynak kodu değşkenini(webSite) kullanıyorum
HtmlDocument'in DocumentNode adlı bir property'si vardır ve html'deki bütün elementleri içerisinde bulundurur.SelectNodes metodu ile de XPATH kodundaki istenilen node çekilir ve kullanılır.
HtmlNodeCollection hnc = hd.DocumentNode.SelectNodes(\"//table[@id='image']/td[@class='bir']\"); // kaynak kodumuzda ID'si \"image\" olan ve td nin class'ı bir olanları getirdik
td tag'ın elementlerine ulaşabilmek için HtmlNode kullanıyoruz.
foreach (HtmlNode hn in hnc)\r\n{\r\n string imgHref = \"http://\"+ hn.Attributes[\"src\"].Values; // img tag'ın src değerlerini imgHref değişkenine attık.\r\n string imageName = imgHref.SubString(imgHref.LastIndexOf('/')+1,imgHref.Length-imgHref.LastIndexOf('/')-1); /* resim url'sinden resim adını SubString ile aldık */\r\n string dosyaYol = @\"image\\\"; // resmin indirilecegi konum\r\n\r\n using (WebClient imgDown = new WebClient())\r\n {\r\n imgDown.DownloadFile(imgHref , dosyaYol+imageName);\r\n }\r\n\r\n}
","upvoteCount":2},"upvoteCount":1}}
Bir websitesinden WebClient sınıfını kullanarak resimleri nasıl indirebilirim ve Html etiketlerine nasıl ulaşabilirim?
Toplam 1 cevap
Öncelikle HtmlAgilityPack kütüphanesimizi kullanabilmek için .dll dosyasını projenize import etmemiz gerekiyor. HtmlAgilityPack.dll
using HtmlAgilityPack; // HtmlAgilityPack namaspace tanımladık.
WebClient wc = new WebClient(); // webclient sınıfımızı tanımladık string webSite = wc.DownloadString("http://www.uzmanim.net"); // Kaynak kodunu indirmek istediğimiz websitesini yazıyoruz.
İkincisi XPATH nasıl kullanılır onu öğrenmeniz gerek.Html Agility Pack kullanacağız.Örneğin yukarıda yazmış olduğumuz websitesinin kaynak kodu aşağıdaki gibi varsayalım.
<table id="image"> <tr> <td class="bir"><img src="uzmanim.net/deneme1.jpg"/></td> </tr> <tr> <td class="bir"><img src="uzmanim.net/deneme2.jpg"/></td> </tr> <tr> <td class="bir"><img src="uzmanim.net/deneme3.jpg"/></td> </tr> </table>
XPATH kullanarak şu işlemleri yapabiliriz;
//table /*Bütün table'ları alır*/
//table[@id='image'] /*ID' si image olan table'ı alır*/
//table[@id='image']/tr /*ID 'si image olan tablonun içirisindeki tr' leri alır*/
//table[@id='image']/td[@class] /* ID'si image olan tablonun içerisindeki td'lerden sadece class'a sahip olanları alır*/
//table[@id='image']/td[@class='bir'] /*ID'si image olan table'nin içersindeki td 'lerden sadece class'ı "bir" olanları getirir */
Öncelikle string olarak indirdiğimiz websitesinin kaynak kodlarını, HtmlDocument oluşturarak parse işlemini gerçekleştireceğiz.
HtmlAgilityPack.HtmlDocument hd = new HtmlDocument(); hd.LoadHtml(webSite); // indirmiş oldugumuz kaynak kodu değşkenini(webSite) kullanıyorum
HtmlDocument'in DocumentNode adlı bir property'si vardır ve html'deki bütün elementleri içerisinde bulundurur.SelectNodes metodu ile de XPATH kodundaki istenilen node çekilir ve kullanılır.
HtmlNodeCollection hnc = hd.DocumentNode.SelectNodes("//table[@id='image']/td[@class='bir']"); // kaynak kodumuzda ID'si "image" olan ve td nin class'ı bir olanları getirdik
td tag'ın elementlerine ulaşabilmek için HtmlNode kullanıyoruz.
foreach (HtmlNode hn in hnc) { string imgHref = "http://"+ hn.Attributes["src"].Values; // img tag'ın src değerlerini imgHref değişkenine attık. string imageName = imgHref.SubString(imgHref.LastIndexOf('/')+1,imgHref.Length-imgHref.LastIndexOf('/')-1); /* resim url'sinden resim adını SubString ile aldık */ string dosyaYol = @"image\"; // resmin indirilecegi konum using (WebClient imgDown = new WebClient()) { imgDown.DownloadFile(imgHref , dosyaYol+imageName); } }