2009-12-17 2 views
0

Может кто-нибудь, пожалуйста, помогите мне исправить мой код.? Я не вижу, где я ошибаюсь. Он просто не делает того, что он должен делать.WebBrowser Control - Document.Body.InnerText Задача

Он должен прочитать файл строки за строкой (каждая строка содержит 1 url), а затем указать URL-адрес в строке, которая будет посещать этот URL-адрес, и извлечь заголовок, URL-адрес и основной текст, а затем сохранить его в файл, но он просто ничего не делает. Единственная ошибка я получаю: «Ссылка на объект не указывает на экземпляр объекта», который указывает на следующую строку кода:

u = w.Document.Body.InnerText; 

Вот полный код:

OpenFileDialog of = 
     new OpenFileDialog(); 
    of.Title = 
     "app name - Select File"; 
    using (of) 
    { 
     try 
     { 
      Cursor = Cursors.WaitCursor; 
      if (of.ShowDialog() == DialogResult.OK) 
      { 
       string[] file = 
        File.ReadAllLines(
        of.FileName); 


       foreach (string line in file) 
       { 
        w.Navigate(line); 
        string t, 
         d, 
         u, 
         path = 
         @"file.txt"; 

         t = 
          w.DocumentTitle; 
         u = 
          w.Document.Body.InnerText; 
         d = 
          w.Url.AbsolutePath; 
         t = 
          t.Substring(0, 
          250); 
         t = 
          t.Replace(
          "\"", 
          "\\\""); 

         a.Text += "\n" + 
          u; 

         File.AppendAllText(path, 
          "s[" + 
          an + 
          "] = \"" + 
          t + 
          "^" + 
          u + 
          "^" + 
          url1 + 
          u + 
          url2 + 
          d + 
          "\";" + 
          Environment.NewLine); 
         an++; 
       } 
      } 
      Cursor = Cursors.Default; 
     } 
     catch (Exception exception) 
     { 
      MessageBox.Show(exception.Message); 
     } 
    } 

I «d признателен за любые предложения/помощь на всех и спасибо :)

Jase

ответ

1

WebBrowser.Navigate есть, IIRC, асинхронная. Может быть, здесь лучше использовать WebClient.DownloadString? или HTML Agility Pack/Load?

+0

спасибо. снова попробует html-маневренность. Знаете ли вы о какой-либо документации для пакета html agility? потому что файл справки, который поставляется с одним из zips, вообще не работает –