从网页上刮去内容

问题描述:

我需要刮一个远程html页面来寻找图片和链接。我需要在页面上找到“最有可能”产品图像的图像,以及“接近”该图像的链接。我目前用javascript书签做这个,这样我就可以得到图像和链接的渲染x/y坐标,以帮助我确定这些是否是我想要的。从网页上刮去内容

我想要的是通过使用url而不是书签的方式来获取这些信息的能力。通过使用url并尝试诸如httpwebrequest和获取服务器上的html之类的问题,我不会拥有位置值,因为它不是在浏览器中呈现的。我需要图像和链接的位置来帮助我确定我想要的图像和链接。

那么如何从服务器上的远程站点获取html并使用dom元素的渲染位置值来帮助我找到图像和链接?

+2

请注意这样做。如果您消耗了太多的服务器资源,或者像忽略了'robots.txt'那样做了一些不愉快的事情,网站可能会将您列入黑名单。 – 2010-09-06 06:09:32

如您所示,通过检查html来完成纯粹是是一个皇家痛苦(特别是当CSS被涉及时)。您可以尝试使用WebBrowser控件(主持IE),但是我想知道是否寻找合适的,支持的API可能会更好(并且不太可能阻止您)。如果没有API或类似的,你可能可能不应该这样做。所以不要。

+0

我正在谈论与Facebook为更新添加网址的功能相同的功能。有趣的是,在这个董事会上,每个人都假设其他人都在做坏事。 – mike 2010-09-06 14:22:40

您可以使用HttpWebRequet下载页面,然后使用HtmlAgilityPack解析出您需要的数据。

您可以从http://htmlagilitypack.codeplex.com/

+0

HtmlAbilityPack可以在每个dom元素的屏幕上获取位置吗?或..对于这个问题渲染图像的大小。我假设不。这些属性确实有助于使我目前的书签精确。 – mike 2010-09-06 14:25:33

下载它,我建议你自己有一个编码它WebBrowser控件或使用在Web浏览器的工作原理,像的Watir或iMacros的可用工具包之一。在那里你可以定义你想要的东西near另一个元素。