Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Bu siteyi Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.

0



c# döngü ile xpath değiştirmek

Merhaba. Bu projem çalısıyor ama sadece 1 bilgi alabiliyorum. Döngü ile xpath ın içini değiştirebilirmiyim acaba?Şimdiden teşekkürler.


  1. /html/body/div[3]/div/div[3]/div/div[1]/div[1]/div[1]/div[4]/table/tbody/tr[1]/td[2]/div/span
  2.  
  3. /html/body/div[3]/div/div[3]/div/div[1]/div[1]/div[1]/div[4]/table/tbody/tr[2]/td[2]/div/span
  4.  
  5. /html/body/div[3]/div/div[3]/div/div[1]/div[1]/div[1]/div[4]/table/tbody/tr[3]/td[2]/div/span
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Net;
  8. using System.Text;
  9. using System.Threading;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. using HtmlAgilityPack;
  13.  
  14.  
  15. namespace WindowsFormsApp8
  16. {
  17. public partial class Form1 : Form
  18. {
  19. public Form1()
  20. {
  21. InitializeComponent();
  22. }
  23. // döngü durumu
  24. bool loop_status = true;
  25.  
  26. private void button1_Click(object sender, EventArgs e)
  27.  
  28. {
  29. CheckForIllegalCrossThreadCalls = false; // cross-thread hatasını önler
  30. Thread abc = new Thread(launch);
  31. abc.Start();
  32.  
  33. }
  34. // ana işlem
  35. private void launch()
  36. {
  37. while (loop_status)
  38. {
  39. for (int i = 0; i <= 9999; i++)
  40. {
  41. label2.Text = (i.ToString());//sayım yapıyor
  42. for (int j = 0; j <= 11; j++)
  43. {
  44. var url = new Uri("https://canlidoviz.com/kripto-paralar"); // url oluştruduk
  45. WebClient client = new WebClient(); // siteye erişim için client tanımladık
  46. var html = client.DownloadString(url); //sitenin html lini indirdik
  47. HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); //burada HtmlAgilityPack Kütüphanesini kullandık
  48. doc.LoadHtml(html); // indirdiğimiz sitenin html lini oluşturduğumuz dokumana dolduruyoruz
  49.  
  50. var mlk = doc.DocumentNode.SelectNodes("/html/body/div[3]/div/div[3]/div/div[1]/div[1]/div[1]/div[4]/table/tbody/tr[1]/td[2]/div/span")[0];
  51. label1.Text = (mlk.InnerHtml.ToString());
  52.  
  53. Thread.Sleep(1000 - DateTime.Now.Millisecond); // sistem zamanına göre 1 saniyeyi milisaniye olarak eşleştirip sleep uygular.
  54. if (loop_status == false)
  55. {
  56. break; // for döngüsünü durdurur ve main loop durur.
  57. }
  58. }
  59. }
  60. }
  61. }
  62.  
  63. private void button2_Click(object sender, EventArgs e)
  64. {
  65. loop_status = false;
  66. }
  67. }
  68. }

Soran:18.01.24 16:21
misafir  

1 Cevap


0


// ile başlayan xpath sorgularıyla çoklu etiket seçimleri yapıp döngü kullanılabilir. Belgeye göre etiketler veya özellikleri üzerinden seçim yapabilirsin. Tam olarak yazmaya vaktim yok aman sizin kullandığınız sayfada aşağıdaki gibi bir yol izlenebilir.

  1. HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
  2. doc.LoadHtml(html);
  3. var trs = doc.DocumentNode.SelectNodes("//tr[contains(@itemprop,'itemListElement')]");
  4. foreach ( var tr in trs )
  5. {
  6. var tds = tr.SelectNodes("//td");
  7. // tds[0].SelectNodes("//span")[0].InnerHtml => Kripto para adı.
  8. // tds[1].SelectNodes("//span")[0].InnerHtml => Fiyatı
  9. // tsd[2], tds[3] vs. devam eder.
  10. }


Cevaplayan: 22.01.24 12:19
cevapsitesi
102,040p 16ü

Bir cevap yazın: