【发布时间】:2012-02-28 01:16:11
【问题描述】:
我正在为 Web Harvesting、Web Scraping、Web Data Extraction、Screen Scraping 等编写 Microsoft .NET Application in C#。无论你想怎么称呼它。为了解析HTML,我正在尝试合并HTML Agility Pack,但这并不像我想象的那么容易。我已经包含了一些我到目前为止所拥有的规格和图像,并希望得到你对我如何进行的意见。基本上,我想做一些类似于 Visual Web Ripper 中使用的布局,但我不知道他们是如何做到的......有什么想法吗?
规格:
我的目标是制作一个用户友好的点击式应用程序,用于从网络下载数据和图像。我想使用网络浏览器加载 HTML 页面,并将解析的数据和图像链接输出到文本框中。用户可以指定他们想要的 HTML 标签,然后将数据下载到网格中。最后,将数据导出为他们需要的任何格式。
我正在尝试使用 HTML Agility Pack 在网页上加载 HTML 并将其显示在文本框中。
// Load Web Browser
private void Form6_Load(object sender, EventArgs e)
{
// Navigate to webpage
webBrowser.Navigate("http://www.webopedia.com/TERM/H/HTML.html");
// Save URL to memory
SiteMemoryArray[count] = urlTextBox.Text;
// Load HTML from webBrowser
HtmlWindow window = webBrowser.Document.Window;
string str = window.Document.Body.OuterHtml;
// Extract tags using HtmlAgilityPack and display in textbox
HtmlAgilityPack.HtmlDocument HtmlDoc = new HtmlAgilityPack.HtmlDocument();
HtmlDoc.LoadHtml(str);
HtmlAgilityPack.HtmlNodeCollection Nodes =
HtmlDoc.DocumentNode.SelectNodes("//a");
foreach (HtmlAgilityPack.HtmlNode Node in Nodes)
{
textBox2.Text += Node.OuterHtml + "\r\n";
}
}
使用:
HtmlWindow window = webBrowser.Document.Window;
我收到错误:Object reference not set to an instance of an object。
【问题讨论】:
-
这些截图非常漂亮。您使用的是什么 GUI 库?
-
谢谢。它是 DotNetBar 和 eXpressApp 框架。有什么想法吗?
-
TBH,您的问题需要更具体。见stackoverflow.com/faq 和stackoverflow.com/questions/how-to-ask
-
您到底希望人们提供什么帮助?
-
有没有在线使用简单 Windows 窗体界面的 HTML Agility Pack 示例?
标签: c# .net visual-studio web-scraping html-agility-pack