2017-06-20 14 views
0

Ich versuche, einige Daten von einer Webseite zu bekommen. Ich schreibe Code in C# .net. Die Webseite hat eine Dropdown-Liste (oder Combobox) wie ich unten gezeigt habe. Die Daten ändern sich entsprechend der ausgewählten Dropdown-Liste, aber die URL ändert sich nicht. Meine Frage ist, wie kann mein Code ausgewählte Werte ändern und Daten von der Webseite erhalten? i analysiert und bekam nur eine der Elemente wie folgt aus:Wie ändert man den ausgewählten Wert in HTML mit C#?

 **WebClient wc = new WebClient(); 
     string kaynak = wc.DownloadString("http://www.diyanet.gov.tr/"); 
     string imsak = "spImsak"; 
     int imindex = kaynak.IndexOf(imsak); 
     imindex += 9; 
     System.Console.WriteLine(kaynak.Substring(imindex, 5));** 

< span id = "spImsak"> 02.44 </span>

i HTML-Code der Webseite als String heruntergeladen. "spImsak" gesucht. endlich habe ich "02:44" als String bekommen. und ich möchte es für alle Combobox-Elemente tun. Kannst du mir einen Rat geben?

Probe Webseite: http://www.diyanet.gov.tr/

roten Comboboxen sind. Gelb ist eine Daten, die ich bekommen möchte.

enter image description here

+0

Lesen Sie zum Lesen von Fragmenten einer HTML-Zeichenfolge HtmlAgilityPack. Dann können Sie diese Spanne durch ihre ID finden. –

+0

Wenn Sie eine HTML-Seite auf diese Weise herunterladen, erhalten Sie eine neue Kopie vom Server, nicht was in * Ihrem * Browser ist. Außerdem ist es nur eine Zeichenfolge, die nichts über Comboboxen usw. weiß. –

+0

@HansKesting meine Firma möchte keine Bibliotheken von Drittanbietern verwenden. –

Antwort

0

ich habe Webseite Netzwerk gefolgt und sah, dass, wenn ich eine Dropdown-Liste Element klicken, wird die Homepage einen Web-Service mit den Parametern ausgeführt wird. Ich erkläre, wie man das auf meine Frage anwendet.

web service and parameters image

alles was ich brauche eine POST-Anforderung mit diesem Web-Service mit diesen Parametern senden und bekam string (json). Ich habe das nach dem C# -Code gemacht.

using (WebClient client = new WebClient()) 
     { 
      int turn; 
      byte[] response; 
      string result; 
      /* gets response for 81 city */ 
      for (turn = 500; turn < 581; ++turn) 
      { 

       response = 
       client.UploadValues("http://diyanet.gov.tr/PrayerTime/MainPrayerTimesSet", new NameValueCollection() 
       { 
        { "countryName", "2" }, 
        { "name", turn.ToString() } 
       }); 
       /* without sleep, web service does not response successive requests */ 
       System.Threading.Thread.Sleep(5); 

       /* turns incoming byte[] -> string */ 
       result = System.Text.Encoding.UTF8.GetString(response); 

       Console.WriteLine(result); 
      } 
     } 
Verwandte Themen