我有一个 Web 应用程序,我想从外部网页获取 h1 标签和第一张图像以及前几行文本。我以前从未这样做过,并且认为使用 jquery 最好,但我不确定。您能给我指出正确的方向或者给出 .net 和 jquery 中的编码示例吗?谢谢。
我想有点像当你在邮箱中输入一个网址作为新帖子时,Facebook 会拉出图片和几行内容。
请您参考如下方法:
由于 CORS (cross-origin resource sharing),您无法使用 AJAX 获取任何 URL 标记网络上的大多数网站都不允许任何人使用其内容。在您的情况下,您应该做的是在您的服务器上使用代理方法。
创建一个接收 URL 并在服务器上获取其标记的操作,然后使用 AJAX 来请求使用新操作的页面 HTML。
从那里你有两个选择。在服务器上解析 HTML,提取所需的所有数据,然后将其发送回客户端或将所有 HTML 发送回客户端。我强烈建议使用服务器进行解析,它将使用更少的带宽,并且您的服务器可能比大多数浏览器提供更好的性能和速度。
如果您决定在客户端分析标记,最简单的方法是将 HTML 传递到根元素,然后使用常规方法查询数据。
即
var $root = $('<div>').html(response.html);
console.log($root.find('h1')); // all h1 tags in response's html
这里的缺点是,一旦您允许浏览器解析您的标记,它将自动加载存在的任何资源,例如图像。
我不使用 .Net,因此我无法为您提供您可能需要的确切工具,但我确实建议您自行查找完成这两项任务的方法服务器。
- 将给定的 URL 内容读取到字符串中。
- 使用任何给定的 DOM 解析器,向其传递 HTML 字符串并查询数据。
