【问题标题】:Scraping content from webpage从网页中抓取内容
【发布时间】:2010-09-06 06:02:54
【问题描述】:

我需要抓取一个远程 html 页面来查找图像和链接。我需要在页面上找到“最有可能”产品图像的图像以及“靠近”该图像的链接。我目前使用 javascript 小书签执行此操作,以便我能够获取图像和链接的渲染 x/y 坐标,以帮助我确定这些是否是我想要的。

我想要的是能够通过仅使用 url 而不是小书签来获取此信息。问题在于,通过使用 url 并尝试类似 httpwebrequest 并在服务器上获取 html,我将没有位置值,因为它没有在浏览器中呈现。我需要图像和链接的位置来帮助我确定我想要的图像和链接。

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

【问题讨论】:

  • 请小心执行此操作。如果您消耗过多的服务器资源或做一些不愉快的事情(例如忽略robots.txt),网站可能会将您列入黑名单。

标签: c# asp.net web-scraping


【解决方案1】:

正如您所指出的,纯粹通过检查 html 来做到这一点是一件非常痛苦的事情(尤其是当涉及到 CSS 时)。您可以尝试使用WebBrowser 控件(托管 IE),但我想知道寻找合适的、受支持的 API 是否会更好(并且不太可能让您被阻止)。如果没有 API 或类似的,您可能不应该这样做。所以不要。

【讨论】:

  • 我说的是与 Facebook 相同的功能,因为它在更新中添加了 url。有趣的是,这个板上的每个人都认为其他人都在做坏事。
【解决方案2】:

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

您可以从http://htmlagilitypack.codeplex.com/下载它

【讨论】:

  • HtmlAbilityPack 是否可以获取每个 dom 元素在屏幕上的位置?或.. 就此而言,渲染图像的大小。我假设没有。这些属性确实有助于使我当前的书签非常准确。
猜你喜欢
  • 1970-01-01
  • 2010-10-09
  • 1970-01-01
  • 2018-07-09
  • 2019-01-13
  • 1970-01-01
相关资源
最近更新 更多