0

我研究了蜘蛛,并认为它对于我正在尝试制作的一个相当简单的应用程序来说有点太复杂了。网页上的某些数据无法在源中查看,因为它只是由浏览器显示。

如果我想从要在 WebBrowser 控件中显示的特定网页中获取值,是否有任何方法可以从该浏览器的内容中读取值?

如果没有,是否有人对他们如何解决这个问题有任何建议?

4

3 回答 3

3

您不是在寻找蜘蛛,而是在寻找屏幕抓取

于 2009-01-16T13:24:32.203 回答
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,您可以开始解析了。

于 2009-01-16T14:33:33.297 回答
0

因为浏览器只是渲染底层内容,最灵活的方法是自己解析底层内容(html/css/js/whatever)。

我会创建一个解析引擎来寻找你的蜘蛛应用程序需要的东西。

这可能是一个基本的字符串搜索算法,例如查找 href="" 并读取值以产生新请求并继续爬取。你的引擎可以写成只寻找它感兴趣的东西,并以这种方式扩展以获得更多功能。

于 2009-01-16T13:27:28.810 回答