我想刮一个网站,只要在浏览器中运行代码。在这种情况下,刮板必须在特定的机器上运行,而我不能在这台机器上安装任何软件。但是,已经安装了浏览器(Firefox的最新版本),我可以任意配置浏览器。
我想要的是一个javascript的抓取解决方案,包含在站点A上的一个网页中,它可以刮站点B。这似乎会遇到一些CORS类型的问题;我认为解决方案的一部分是禁用浏览器中的任何跨源检查。
到目前为止,我尝试过的是:我查找了“javascript中的web抓取”,这带来了许多想要在nodejs中使用本教程运行的东西,比如刮刀,它需要PhantomJS。但是,我找不到任何类似的东西可以在浏览器中运行。
这很有趣:显然,启用跨域ajax请求的Firefox设置 Chrome --disable-web-security负责跨源/跨域问题。火狐等价物?
看起来火狐的ForceCORS扩展也很有用:http://www-jo.se/f.pfleger/forcecors,我不确定我是否能安装它。
这是一个在不同浏览器中允许跨域的很好的方法集合:http://romkey.com/2011/04/23/getting-around-same-origin-policy-in-web-browsers/ --很遗憾,建议的火狐解决方案在>=5版本中不起作用。
发布于 2015-09-01 14:32:10
编辑:看起来import.io服务关闭了,url指向了完全不同的东西。认为这个答案是过时的。
尝试使用import.io:(基本上是一个使用REST的刮取服务)
一旦我有了对API的javascript调用示例,我就可以提供它。或者你自己检查文档。
Import.io允许您使用简单的点击技术将在网页上找到的数据构造成行和列。首先您定位您的数据:使用我们的浏览器导航到一个网站(从我们这里下载:http://import.io)。然后,通过单击浏览器右上角的粉红色IO按钮,输入我们的专用数据提取工作流。我们将引导您完成页面上的数据结构。通过向我们展示数据所在的示例,您将教import.io如何提取数据。我们创建了学习算法,从这些例子中总结出如何获取网站上的所有数据。您收集的数据存储在我们的云服务器上,供下载和共享。和每次您发布到我们的平台时,我们都会创建一个API来编程获取数据,这样您就可以轻松地将实时web数据集成到您的应用程序或第三方分析和可视化软件中。
编辑:
如果数据识别在浏览器中有效,您可以通过标题到"simple集成“并复制url来访问数据。

url u可以粘贴在这里:
function reqListener () {
console.log(JSON.parse(this.responseText));
return JSON.parse(this.responseText);
}
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", reqListener);
oReq.open("GET", "yourUrlFromClipboardComesHere", true);
oReq.send();https://stackoverflow.com/questions/22975760
复制相似问题