txtbox字符串和innerText / innerHTML(HTMLAGILITYPACK)返回错误的比较

时间:2018-07-06 12:19:37

标签: c# html-agility-pack

我已经使用HTMLAGilityPack从互联网上获取了一些信息。没问题。 然后,我通过从stackoverflow中获取的方法传递innerHTML(这是为了删除标记等,并使其成为纯文本)。

然后我调用一个布尔值以确定新的输出是否与表单上的txtInput相同。即使它们相同也返回假?

我对Unicode,UT-8,Cry,字符字节等一无所知。尽管我假设二进制文件不同?即使它们看起来一样?我该如何解决这个问题。

这是输入框中的字符串,与从HTMLAGilitypack中提取的字符串相同 “当我长大(壮举。劳伦·沃德和贝利·里昂)”

这是两个并排的输出。

Input Value Node Value

从图片中可以看到,它们的面值看起来完全一样。但是它返回false。请问我该如何解决?

这是我的代码:

这将检查值是否不同,并始终返回false。

private bool CheckText(string node)
    {
        string value = HtmlToPlainText(txtSong.Text);  
        if (value == node)
            return true;
        else
            return false;
    }

这是实际提取数据的方法,如果匹配,则打开页面;否则,将重试。

private void pullTable(int pageNum, string keyWord, int resultStart)
    {
        int countCheck = 0;
        while (countCheck == 0)
        {
            System.Threading.Thread.Sleep(3000);
            HtmlWeb web = new HtmlWeb();
            string amazon = "https://www.amazon.co.uk/s/ref=nb_sb_noss_2?url=search-alias%3Ddigital-music&page=" + pageNum + "";

            if (txtSong.Text != "")
            {
                string temp = txtSong.Text.Replace("(", "%28");
                temp = temp.Replace(")", "%26");
                amazon = amazon + "&field-keywords=" + temp;
            }
            if (txtArtist.Text != "")
            {
                string temp = txtArtist.Text.Replace("(", "%28");
                temp = temp.Replace(")", "%26");
            amazon = amazon + "&field-author=" + temp;
            }
            if (radioArtistAZ.Checked)
                amazon = amazon + "&sort=artist-album-asc-rank";
            else if (radioArtistZA.Checked)
                amazon = amazon + "&sort=artist-album-desc-rank";
            else if (radioSongAZ.Checked)
                amazon = amazon + "&sort=title-asc-rank";
            else if (radioSongZA.Checked)
                amazon = amazon + "&sort=title-desc-rank";
            {

            }

            var doc = web.Load(amazon);
            System.Threading.Thread.Sleep(200);
            var nodes = doc.DocumentNode.SelectNodes("//body");
            try
            {
                nodes = doc.DocumentNode.SelectNodes("//tr[starts-with(@id, 'result_')]/td[2]/div/a");
            }
            catch (Exception)
            {

            }
            try
            {
                for (int i = 0; i < 50; i++)
                {
                    //    string tempValue = nodes[i].InnerHtml.Replace("&amp;", "&");
                    var plainText = HtmlToPlainText(nodes[i].InnerText);
                    if (CheckText(plainText))
                    {
                        AppendTextBox("Opening on page " + pageNum);
                        System.Diagnostics.Process.Start(amazon);
                        found = 1;
                        countCheck = 1;
                        return;
                    }
                    else
                    {


                    }
                }
                countCheck = 1;
                AppendTextBox("Not found on page " + pageNum);
            }
            catch (Exception)
            {
                AppendTextBox("error on page " + pageNum);
                System.Threading.Thread.Sleep(1500);

            }

        }
    }

0 个答案:

没有答案