有人可以帮我修改我的代码吗?我看不出我哪里错了。它只是没有做它应该做的事情。
它应该逐行读取一个文件(每行包含1个url),然后在字符串中的foreach url将访问该url并提取title,url和body文本,然后将其保存到文件中但是它只是没有做任何事情。我得到的唯一错误是: “对象引用未设置为对象的实例”,它指向以下代码行:
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);
}
}
我很感激任何建议/帮助,谢谢:)
jase
答案 0 :(得分:1)
WebBrowser.Navigate
是,IIRC,异步。在这里使用WebClient.DownloadString
可能会更好吗?或HTML Agility Pack / Load
?