Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用c#更改html中的选定值?_C#_Html_Combobox_Webclient - Fatal编程技术网

如何使用c#更改html中的选定值?

如何使用c#更改html中的选定值?,c#,html,combobox,webclient,C#,Html,Combobox,Webclient,我想从网页上获取一些数据。我正在用c#net编写代码。该网页有一个下拉列表(或组合框),如下所示。数据会根据所选下拉列表项进行更改,但url不会更改。我的问题是,我的代码如何更改选定的值并从网页中获取数据?我只解析并获取了其中一项: **WebClient wc = new WebClient(); string kaynak = wc.DownloadString("http://www.diyanet.gov.tr/"); string ims

我想从网页上获取一些数据。我正在用c#net编写代码。该网页有一个下拉列表(或组合框),如下所示。数据会根据所选下拉列表项进行更改,但url不会更改。我的问题是,我的代码如何更改选定的值并从网页中获取数据?我只解析并获取了其中一项:

        **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));**
02:44

我下载了网页的html代码作为字符串。搜索“spImsak”。最后我得到了“02:44”作为字符串。我想对所有组合框项目都这样做。你能给我一些建议吗

样本网页:

红色的是组合框。黄色的是我想要得到的数据


我跟踪了网页的网络,发现当我单击任何下拉列表元素时,网页运行带有参数的web服务。我解释如何将其应用于我的问题

我所需要的就是向这个web服务发送一个POST请求,其中包含这些参数和GET字符串(json)。我是按照c代码做的

使用(WebClient=newWebClient())
{
内翻;
字节[]响应;
字符串结果;
/*获取81个城市的响应*/
用于(圈数=500;圈数<581;++圈)
{
回应=
client.uploadValue(“http://diyanet.gov.tr/PrayerTime/MainPrayerTimesSet,新名称ValueCollection()
{
{“countryName”,“2”},
{“name”,turn.ToString()}
});
/*如果没有睡眠,web服务不会响应连续的请求*/
系统。线程。线程。睡眠(5);
/*将传入字节[]->string*/
结果=System.Text.Encoding.UTF8.GetString(响应);
控制台写入线(结果);
}
}

要读取html字符串的片段,请查看HtmlAlityPack。然后,您可以通过它的id找到该范围。当您以这种方式下载HTML页面时,您将从服务器获得一个新副本,而不是浏览器中的任何内容。另外,它只是一个字符串,对组合框等一无所知。@HansKesting我的公司不想使用第三方库。@HansKesting我知道我有一个字符串。你有什么解决办法吗?
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);
            }
        }