コード例 #1
0
        private async void button1_Click(object sender, EventArgs e)
        {
            if (textBox2.Text != string.Empty)
            {
                domian = textBoxEx1.Text.Replace("{0}", textBox2.Text);
            }
            InitBrowser();

            var title = "";
            await Task.Run(async() =>
            {
                await Task.Delay(5500);
                string html = await CefWebBrowserControl.GetHtmlSource(chromiumWebBrowser);

                HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                doc.LoadHtml(html);                //

                title = doc.DocumentNode.SelectSingleNode("//div[@class='breadcrumb']/span[2]").InnerText;
            });

            textBox1.Text = title;
            //string name = "18126015434";
            //string pwd = "yl123456";
            //string nameClassid = "el-input__inner";
            ////document.querySelector("#body > div > div.layout-container.prative-page > div.prative-box > div.topic.no-select > div > div.select-left.pull-left.options-w")
            ////document.querySelector("#body > div > div.layout-container.prative-page > div.prative-box > div.topic.no-select > div > div.topic-top > div > div")
            //CefWebBrowserControl.ClickButtonByJsPath(chromiumWebBrowser, @"document.querySelector('#body > div > div > div.form-main > form > div > div:nth-child(1) > div > div > div > input').value='18126015434'");
            //CefWebBrowserControl.ClickButtonByJsPath(chromiumWebBrowser, @"document.querySelector('#body > div > div > div.form-main > form > div > div:nth-child(2) > div > div > div > input').value='yl123456'");
            //CefWebBrowserControl.ClickButtonByJsPath(chromiumWebBrowser, @"document.querySelector('#body > div > div > div.form-main > form > div > div.mb20 > button').click()");
        }
コード例 #2
0
        private async Task GetKSData()
        {
            //CefWebBrowserControl.ClickButtonByJsPath(chromiumWebBrowser, @"document.querySelector('div.tool-bar').children[6].click()");
            int topic_index = 0;


            topic_index++;
            var topic_type = string.Empty;
            var topic      = string.Empty;

            try
            {
                await Task.Delay(300);

                string html = await CefWebBrowserControl.GetHtmlSource(chromiumWebBrowser);

                HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                doc.LoadHtml(html);                //html字符串
                //获取标签里的值select-left pull-left options-w

                var answers = doc.DocumentNode.SelectNodes("//div[@class='ui-question ui-question-independency ui-question-1']");

                foreach (var item in answers)
                {
                    var value1 = item.SelectSingleNode("./div[@class='ui-question-title']/div[@class='ui-question-content-wrapper']");
                    var value2 = item.SelectSingleNode("./ul[@class='ui-question-options']/li[contains(@class,'ui-correct-answer')]");

                    listBox1.Items.Add($"答案:{value2.InnerText}||{value1.InnerText}");
                    //listBox1.Items.Add($"{value2.InnerText}");
                }
            }
            catch (Exception ex)
            {
                listBox1.Items.Add($"错误行:{topic_type},{topic_index},{topic}");
            }
        }
コード例 #3
0
        private async Task GetSTSQData()
        {
            //CefWebBrowserControl.ClickButtonByJsPath(chromiumWebBrowser, @"document.querySelector('div.tool-bar').children[6].click()");
            int topic_index = 0;

            while (!cts.Token.IsCancellationRequested)
            {
                topic_index++;
                var topic_type = string.Empty;
                var topic      = string.Empty;
                try
                {
                    await Task.Delay(300);

                    string html = await CefWebBrowserControl.GetHtmlSource(chromiumWebBrowser);

                    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                    doc.LoadHtml(html);                    //html字符串
                    //获取标签里的值select-left pull-left options-w

                    var enable = doc.DocumentNode.SelectSingleNode("//div[@class='btn_ct tb']/button[2]");
                    if (enable.Attributes["disabled"] != null && enable.Attributes["disabled"].Value.Equals("disabled"))
                    {
                        break;
                    }

                    topic_type = doc.DocumentNode.SelectSingleNode("//div[@class='test_style']").InnerText.Split(new char[2] {
                        '【', '】'
                    })[1];
                    //topic_index = doc.DocumentNode.SelectSingleNode("//span[@class='topic-type']/following-sibling::span").InnerText.Replace("\\n", "").Split('/')[1];
                    topic = doc.DocumentNode.SelectSingleNode("//div[@class='test_title']/span").InnerHtml;

                    if ("单选题 多选题 判断题 不定项选择题 排序题 单项选择题 多项选择题".Contains(topic_type))
                    {
                        var answers = doc.DocumentNode.SelectNodes("//div[@class='test_bot']/dl");

                        CefWebBrowserControl.ClickButtonByJsPath(chromiumWebBrowser, @"document.querySelector('div.test_bot').children[0].children[0].click()");
                        await Task.Delay(200);

                        listBox1.Items.Add($"[{ topic_type}]");
                        listBox1.Items.Add($"{topic_index}、{topic}");
                        foreach (var item in answers)
                        {
                            string value1 = item.SelectSingleNode("./span").InnerText;
                            string value2 = item.InnerText;

                            listBox1.Items.Add($"{value1}{value2}");
                        }
                    }

                    var answerRight    = doc.DocumentNode.SelectSingleNode("//span[@class='rightAnswer']").InnerText;
                    var answerAnalysis = doc.DocumentNode.SelectSingleNode("//div[@class='answerText']/div[4]").InnerHtml;
                    listBox1.Items.Add("答案:" + answerRight);
                    listBox1.Items.Add(answerAnalysis);

                    CefWebBrowserControl.ClickButtonByJsPath(chromiumWebBrowser, @"document.querySelector('div.test_bot').lastElementChild.firstElementChild.click()");
                }
                catch (Exception ex)
                {
                    listBox1.Items.Add($"错误行:{topic_type},{topic_index},{topic}");
                    cts?.Cancel();
                    break;
                }
            }
        }
コード例 #4
0
        private async Task GetKSBData()
        {
            CefWebBrowserControl.ClickButtonByJsPath(chromiumWebBrowser, @"document.querySelector('div.tool-bar').children[6].click()");
            int topic_index = 0;
            var topic_type  = string.Empty;

            while (!cts.Token.IsCancellationRequested)
            {
                topic_index++;
                //var topic_type = string.Empty;
                var topic = string.Empty;
                try
                {
                    await Task.Delay(500);

                    string html = await CefWebBrowserControl.GetHtmlSource(chromiumWebBrowser);

                    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                    doc.LoadHtml(html);                    //html字符串
                    //获取标签里的值select-left pull-left options-w

                    var new_type = doc.DocumentNode.SelectSingleNode("//span[@class='topic-type']").InnerText;
                    //topic_index = doc.DocumentNode.SelectSingleNode("//span[@class='topic-type']/following-sibling::span").InnerText.Replace("\\n", "").Split('/')[1];
                    topic = doc.DocumentNode.SelectSingleNode("//div[@class='qusetion-box']").InnerHtml;

                    if (topic_type != new_type)
                    {
                        topic_type = new_type;
                        listBox1.Items.Add($"[{ topic_type}]");
                    }
                    listBox1.Items.Add($"{topic_index}.{topic}");

                    if ("单选题 多选题 判断题 不定项选择题 排序题".Contains(topic_type))
                    {
                        var answers = doc.DocumentNode.SelectNodes("//div[@class='option']");
                        if (answers != null)
                        {
                            foreach (var item in answers)
                            {
                                string value1 = item.SelectNodes("./span")[0].InnerText;
                                string value2 = item.SelectNodes("./span")[1].InnerText;

                                listBox1.Items.Add($"{value1}{value2};");
                            }
                        }
                        else
                        {
                            listBox2.Items.Add($"{topic_index}.题目错误");
                        }
                    }

                    var answerRight    = doc.DocumentNode.SelectSingleNode("//p[@class='answer-right']/span").InnerText;
                    var answerAnalysis = doc.DocumentNode.SelectSingleNode("//p[@class='answer-analysis']").InnerHtml;
                    if (checkBox1.Checked)
                    {
                        listBox2.Items.Add($"{topic_index}.{answerRight}");
                    }
                    else
                    {
                        listBox1.Items.Add("答案:" + answerRight);
                        listBox1.Items.Add(answerAnalysis);
                    }


                    var enable = doc.DocumentNode.SelectSingleNode("//div[@class='next-preve']/button[2]");
                    if (enable.Attributes["disabled"] != null && enable.Attributes["disabled"].Value.Equals("disabled"))
                    {
                        break;
                    }

                    CefWebBrowserControl.ClickButtonByJsPath(chromiumWebBrowser, @"document.querySelector('div.next-preve').children[1].click()");
                }
                catch (Exception ex)
                {
                    listBox1.Items.Add($"错误行:{topic_type},{topic_index},{topic}");
                    cts?.Cancel();
                    break;
                }
            }

            button4_Click(null, null);
        }