html - 如何操纵其他网站数据?

标签 html apache api tomcat glassfish

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

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

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

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

我知道如果它是我自己的网站,我可以使用 javascript 来做类似的事情:

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

> or

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 页面。

最佳答案

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

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

关于html - 如何操纵其他网站数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36375915/

相关文章:

css - 如何在不知道宽度的情况下水平居中 div?

java - apache asyncClient 是实际的异步还是它在幕后使用线程

json - 在维基共享资源中按文件名查找图像

scala - 删除 DAO 模型中的可选字段

xml - 如何使用 JMeter 发送 XML POST 请求

javascript - 隐藏的 div 显示一瞬间 (slideToggle/javascript)

html 表格元素与上面的行不对齐

javascript - 使用媒体查询隐藏叠加层

java - 要实现zookeeper系统,我需要在每台机器上下载zookeeper还是只在主机器上下载zookeeper?

java - 在 Apache 负载均衡器中读取工作属性配置失败时出错