我已经研究了蜘蛛网并且认为它对于我想要制作的非常简单的应用来说有点过于复杂。网页上的某些数据无法在源中查看,因为它只是由浏览器显示。
如果我想从我在WebBrowser控件中显示的特定网页获取值,是否有任何方法可以读取此浏览器内容的值?
如果没有,是否有人对他们如何处理此问题有任何建议?
答案 0 :(得分:3)
您不是在寻找spidering,而是在寻找screen scraping。
答案 1 :(得分:2)
我不得不同意Bombe,听起来更像是你想要HTML Screen Scraping。它需要大量的解析,如果您的抓取页面发生变化,您的应用程序将会中断,但这里只是一个小例子:
WebClient webClient = new WebClient();
const string strUrl = "http://www.yahoo.com/";
byte[] reqHTML;
reqHTML = webClient.DownloadData(strUrl);
UTF8Encoding objUTF8 = new UTF8Encoding();
string html = objUTF8.GetString(reqHTML);
现在html变量中包含整个HTML,您可以开始解析。
答案 2 :(得分:0)
因为浏览器只是呈现底层内容,所以最灵活的方法是自己解析底层内容(html / css / js / whatever)。
我会创建一个解析引擎来查找蜘蛛应用程序所需的东西。
这可能是一个基本的字符串搜索算法,例如查找href =“”并读取值以产生新请求并继续进行搜索。您的引擎可以编写为仅查找感兴趣的内容并以此方式扩展以获得更多功能。