0

有人可以帮我修复我的代码吗?我看不出我哪里错了。它只是没有做它应该做的事情。

它应该逐行读取文件(每行包含 1 个 url),然后在字符串中 foreach 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);
        }
    }

我将不胜感激任何建议/帮助,谢谢:)

杰斯

4

1 回答 1

1

WebBrowser.Navigate是,IIRC,异步。在这里使用可能会更好WebClient.DownloadString?或 HTML 敏捷包 / Load

于 2009-12-17T23:29:12.513 回答