因此,对于这个大学项目,我正在创建一个使用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。
答案 0 :(得分:1)
它称为抓取,您可以使用的技术取决于您要抓取的网站类型。如果你想在没有任何javascript的情况下抓取静态网页,或者javascript只是为了可用性而不是内容,那么你可以使用像curl或wget这样的cli工具,或者使用你正在使用的任何语言来编写HTTP库。来自ruby世界的即用型网络爬虫的一个很好的例子是mechanize。
如果你想抓取严重依赖javascript来渲染内容的页面,那么你需要像脚本浏览器那样更复杂的东西。示例是PhantomJS(基于webkit,无头),SlimerJS(基于Firefox的Gecko)。或者您可以使用selenium之类的东西来远程编写几乎所有浏览器的脚本。