寻找一种用JS抓取HTML的方法

正如标题所示,我正在寻找一种从网页上抓取所有HTML的希望直截了当的方法。 也许将它存储在字符串中,然后浏览该字符串以拉出所需的元素。

具体来说,我想刮掉我的推特页面并在新的div中显示我的个人资料图片。 我知道有几个工具可以做到这一点,但我会有一些代码示例或建议我如何自己这样做?

非常感谢

UPDATE

在TJ Crowder的一个非常有用的回复之后,我在网上搜索了一些并找到了这个资源 。

从理论上讲,这很容易。 您只需执行ajax调用以获取页面文本,然后使用jQuery将其转换为断开连接的DOM,然后使用所有常用的jQuery工具来查找和提取所需内容。

$.ajax({ url: "http://example.com/some/path", success: function(html) { var tree = $(html); var imgsrc = tree.find("img.some-class").attr("src"); if (imgsrc) { // ...add the image to your page } } }); 

但是 (并且它是一个很大的)它不太可能工作,因为同源策略阻止了跨源的ajax调用。 某些个别站点可能有一个开放的CORS策略,但大多数不会,当然在IE8和IE9上支持CORS 需要一个额外的jQuery插件 。

因此,要通过CORS不允许您的原始站点执行此操作,必须涉及服务器。 它可以是您的服​​务器,您可以使用服务器端代码获取所需页面的文本,然后通过ajax将其发送到您的页面(或者在您首次渲染时将所需的位构建到页面中)。 所有常见的服务器端堆栈(PHP,Node,ASP.Net,JVM,…)都能够抓取网页。 或者,在某些情况下,您可以使用YQL作为跨域代理 ,使用他们的服务器而不是您自己的服务器。