【问题标题】:How to manipulate other website data?如何操纵其他网站数据?
【发布时间】:2016-04-03 00:53:24
【问题描述】:

所以对于这个大学项目,我正在创建一个应用程序,它使用 API 以某种方式检索数据、存储和输出。

但我意识到 API 非常原始,并没有提供所需的适当数据。

因此,我现在需要你的帮助来解决我什至不知道它叫什么的东西。

我需要一种技术来读取网页并返回请求网页的 HTML,因此我可以创建一个算法来自己提取适当的数据。

我知道,如果它是我自己的网站,我可以使用 javascript 来执行以下操作:

var unfilteredData = document.getElementbyId("x");

> 或

var unfilteredData = document.getElementbyId("x"),innerHtml;

但我需要知道如何访问不在我域中的网站(元素/标签)。

仅供参考,我知道 JSON、AJAX、XHttpRequest 或任何您想称呼它的名称:

function loadKnownXML() {
  var xmlhttp;
  if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
  } 
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      document.getElementById("demo").innerHTML =
      xmlhttp.responseText;
    }
  };
  xmlhttp.open("GET", "xmlhttp_info.txt", true);
  xmlhttp.send();
}

但是,这些 xhttprequest 仅适用于 API 等。

我需要输入“http://www.bbc.com/”的东西,它会给我 BBC 网站的(整个)HTML 页面。

【问题讨论】:

    标签: html apache api tomcat glassfish


    【解决方案1】:

    这称为抓取,您可以使用什么技术取决于您要抓取的网站类型。如果您想在没有任何 javascript 的情况下抓取静态网页,或者 javascript 只是为了可用性而不是内容,那么您可以使用 curl 或 wget 之类的 cli 工具,或者您使用的任何语言的 ann HTTP 库。 mechanize 是 ruby​​ 世界中现成的网络爬虫的一个很好的例子。

    如果您想抓取严重依赖 javascript 来呈现内容的页面,那么您需要更复杂的东西,例如可编写脚本的浏览器。例如PhantomJS(基于 webkit,无头)、SlimerJS(基于 Firefox 的 Gecko)。或者你可以使用selenium 之类的东西来远程编写几乎任何浏览器的脚本。

    【讨论】:

      猜你喜欢
      • 2018-11-06
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      • 2017-12-30
      • 2012-07-22
      相关资源
      最近更新 更多