#c# #.net #asp.net
#c# #.net #asp.net
Вопрос:
Я загрузил HTML-данные с веб-сайта, используя класс webclient. Теперь я хочу прочитать данные между тегами. Я узнал о htmlagilitypack, но я не хочу его использовать. Я использую следующий код для получения HTML-данных.
WebClient client = new WebClient();
string url = "XXXXXXXXXXXXX"
Byte[] requestedHTML;
requestedHTML = client.DownloadData(url);
string htmlcode = client.DownloadString(url);
//client.DownloadFile(url, @"E:test.html");
UTF8Encoding objUTF8 = new UTF8Encoding();
string html = objUTF8.GetString(requestedHTML);
Response.Write(html);
Комментарии:
1. Почему вы не хотите использовать HtmlAgilityPack?
2. @Muad’Dib попал в точку, задано 46 вопросов, и принят только 1 треть — это немного мало…
3. Хорошо, я буду делать это всякий раз, когда у меня будет свободное время.. Теперь кто-нибудь может дать ответ на этот вопрос?
4. Какие данные вы хотите прочитать, означает значение какого-либо конкретного тега / элемента?
5. Данные Html содержат в себе тег table. В этом существовало много <tr> . один из <tr> содержит данные, которые я хочу извлечь. Это то, что я хочу знать.
Ответ №1:
Вместо этого используйте регулярные выражения.
Ответ №2:
Попробуйте это:
WebClient client = new WebClient();
string url = "Your URL";
Byte[] requestedHTML;
requestedHTML = client.DownloadData(url);
string htmlcode = client.DownloadString(url);
//client.DownloadFile(url, @"E:test.html");
UTF8Encoding objUTF8 = new UTF8Encoding();
string html = objUTF8.GetString(requestedHTML);
MatchCollection m1 = Regex.Matches(html, @"(<h3>(.*?)</h3>)",
RegexOptions.Singleline);
foreach (Match m in m1)
{
string cell = m.Groups[1].Value;
Match match = Regex.Match(cell, @"<h3>(. ?)</h3>");
if (match.Success)
{
string value = match.Groups[1].Value;
}
}
Строковое значение даст вам значение = «Чикаго»
Комментарии:
1. Данные Html содержат в себе тег table. В этом существовало много <tr> . один из <tr> содержит данные, которые я хочу извлечь. Это то, что я хочу знать.
2. Можете ли вы указать URL, с которого вы хотите прочитать данные, и какие конкретные данные вы хотите прочитать из строки??
3. URL : zipinfo.com/cgi-local/zipsrch.exe?zip=60680 .. Здесь я передаю почтовый индекс на сайт и получаю связанные данные. HTML-данные содержат название города с заданным почтовым индексом, здесь название города, которое я получил, — Чикаго (вы можете видеть это в html-данных). это значение, которое я хочу получить.
4. Да, Тезис верен, регулярное выражение выполняется довольно быстро .. Я изменил ответ, попробуйте это
5. @ BreakHead: Всего за 2 минуты до этого это работало, но сейчас это не так. Количество совпадений равно 0. Я не понимаю, почему это произошло так