Я вытащил некоторую информацию из Интернета, используя HTMLAGilityPack. Нет проблем.
Затем я передаю innerHTML через метод, который я взял из stackoverflow (это должно удалить разметки и т. Д. И сделать его открытым текстом).
Затем я вызываю логическое значение, чтобы определить, совпадает ли новый вывод с txtInput в форме. Это возвращает ложь, даже если они одинаковы?
Я ничего не знаю о юникоде, UT-8, Cry, символьных байтах и т. Д. Хотя я предполагаю, что двоичный файл отличается? хотя они выглядят одинаково? Как я могу обойти эту проблему.
Это строка в поле ввода, та же самая, которую она извлекает из HTMLAGilitypack.
«Когда я вырасту (подвиг. Лорен Уорд и Бэйли Район)»
Это 2 выхода рядом.
Как видно из рисунков, по номиналу они выглядят совершенно одинаково. Все же это возвращает ложь. Пожалуйста, как я могу это исправить?
Вот мой код:
Проверяет, отличаются ли значения, и всегда возвращает 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("&", "&");
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);
}
}
}