如何操纵其他网站数据?

时间:2016-04-02 16:37:09

标签: html apache api tomcat glassfish

因此,对于这个大学项目,我正在创建一个使用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 PAGE。

1 个答案:

答案 0 :(得分:1)

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

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