RQ yang Ответов: 2

Чтение исходного кода веб-страницы на веб-странице с помощью .NET C#


Привет,

Я пытаюсь прочитать веб-страницу, как показано ниже в коде, это работает. Проблема в том, что веб-страница имеет два раздела, основной текст и панель ответов, следующий код является только отчетом об исходном коде основного текста, и в разделе панели ответов появляется сообщение об ошибке "Ваш браузер не поддерживает iframes". Однако на активированной веб-странице щелкните раздел Панель ответов и вручную просмотрите источник. Отчет об исходном коде верен. В C#, как я могу управлять веб-страницей и сосредоточиться на разделе панели ответов перед вызовом webClent DownloadString (), чтобы получить правильный исходный текст.

Он ценится за ваш ответ и время.

ЗАПРОС

использование системы.Окна.Формы;
использование System.Net
...
Системы.Нет.Вебклиент сан. узел = новый система.Нет.Вебклиент();
string webData = wc. DownloadString("http://start.csail.mit.edu/answer.php?query=Who + является + 41-м + президентом+в + США");

Что я уже пробовал:

Я ищу в интернете и пробую другой код, но безуспешно.

Beginner Luck

используйте htmlagilitypack. просто google htmlagilitypack

2 Ответов

Рейтинг:
1

Ehsan Skardu

Попробовать это

private static string ReadsourceCode(string Url)
{
string data="";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

if (response.StatusCode == HttpStatusCode.OK)
{
  Stream receiveStream = response.GetResponseStream();
  StreamReader readStream = null;

  if (response.CharacterSet == null)
  {
     readStream = new StreamReader(receiveStream);
  }
  else
  {
     readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
  }

  data = readStream.ReadToEnd();

  response.Close();
  readStream.Close();
}
return data; 
}

звоните вот так
var source =ReadsourceCode("http://start.csail.mit.edu/answer.php?query=Who+is+the+41th+president+in+USA");


Рейтинг:
1

F-ES Sitecore

Iframe отображается вашим браузером как страница внутри страницы, это визуальный трюк, чтобы две страницы выглядели как одна. Вам нужно будет разобрать html-код загруженной страницы, чтобы найти iframe, а затем прочитать элемент "src" (все это можно сделать с помощью пакета agility pack или просто манипуляции с обычным текстом или регулярным выражением). Затем вам нужно будет отправить второй запрос на страницу в src точно так же, как вы сделали свою первоначальную страницу, вам, вероятно, придется добавить к ней доменное имя (http://start.csail.mit.edu/justanswer.php?query=....).


RQ yang

Спасибо, вы правы!