Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从网站复制文本并在自己的HTML文件中使用_Javascript_Html_Copy - Fatal编程技术网

Javascript 如何从网站复制文本并在自己的HTML文件中使用

Javascript 如何从网站复制文本并在自己的HTML文件中使用,javascript,html,copy,Javascript,Html,Copy,我正在做一个网站,寻找航班的价格。每次我加载我的HTML文件时,我必须从另一个非我的网站复制价格,并将其插入我的HTML文件中 另一个网站的源代码表明我正在寻找的标签是span标签,如250 所以问题是:我如何复制或提取这些信息,并将其使用或插入到我的HTML文件中 我想使用HTML、CSS、JavaScript和/或引导来解决这个问题。使用inspect元素,右键单击并单击inspect元素。然后在左上角会有一个框,箭头指向,这是搜索,单击它。然后在页面上选择您想要的部分,然后它将加载它,这样

我正在做一个网站,寻找航班的价格。每次我加载我的HTML文件时,我必须从另一个非我的网站复制价格,并将其插入我的HTML文件中

另一个网站的源代码表明我正在寻找的标签是span标签,如
250

所以问题是:我如何复制或提取这些信息,并将其使用或插入到我的HTML文件中


我想使用HTML、CSS、JavaScript和/或引导来解决这个问题。

使用inspect元素,右键单击并单击inspect元素。然后在左上角会有一个框,箭头指向,这是搜索,单击它。然后在页面上选择您想要的部分,然后它将加载它,这样您就可以复制并粘贴它。

使用网页刮板;我推荐
request
cheerio
。这假设您拥有
节点JS
,并且知道如何安装软件包。 下面是一个简单的示例代码:

var request = require('request');
var cheerio = require('cheerio');

request(this.url, function(error, response, body) {
    if (!error && response.statusCode == 200) {
        // body is the scraped html
        $ = cheerio.load(arg); // the jQuery-like selector
        var price = $('span.price-amount').text(); // the price you want. Use the selector accordingly.
    }
}
客户端Web垃圾 您可以使用页面剥离来完成此操作。至少我是这么说的。一个基本的例子是:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {

    if (xhr.readyState === 4) {

        var doc = document.createElement('div');
        doc.innerHTML = xhr.responseText;
        var elems = doc.getElementsByTagName('*'),
        prices = [];

        for (var i = 0; i < elems.length; i += 1) {

            if ((elems[i].getAttribute('class')||'').indexOf('price-amount') > -1 && (elems[i].getAttribute('class')||'').indexOf('amount') > -1) {
                prices.push(elems[i].innerHTML);
            }

        }
    }
};
xhr.open('GET', 'airlinesite.com/path/to/page', true);
xhr.send();
var xhr=new-XMLHttpRequest();
xhr.onreadystatechange=函数(){
if(xhr.readyState==4){
var doc=document.createElement('div');
doc.innerHTML=xhr.responseText;
var elems=doc.getElementsByTagName('*'),
价格=[];
对于(变量i=0;i-1&(elems[i].getAttribute('class')| |').indexOf('amount')>-1){
prices.push(elems[i].innerHTML);
}
}
}
};
xhr.open('GET','airlinesite.com/path/to/page',true);
xhr.send();
这将从
airlinesite.com/path/to/page
获取HTML。然后它将获得所有元素。循环通过它们。如果它有一个类
amount
price amount
,它将把它的值存储在一个数组中。这些值将存储在
价格中


为此,目标域必须具有CORS,它可能具有CORS

您是否查看了其他网站的开发者API页面?这可以为您节省大量的工作和时间。我个人并没有这样做,但看起来
import.io
可能是一个不错的选择。在这里查看:import.io是个好主意。或者您需要一个服务器端脚本来加载页面和导入数据。正如您所说,像javascript这样的客户端不允许从其他页面获取内容,只要他们设置了“跨域”访问,您就可以检查,但他们可能没有。@NewToJS。我从未使用过API。那个网站有一个API,但我不知道如何使用它。我现在更喜欢用另一种方式来解决这个问题,然后再看看关于API的信息。@robysottini你可以使用页面剥离,看看我的答案prices change,你真的希望robysottini在网站每次更新价格时都使用inspect元素吗?这将是浪费时间,毫无疑问,需要对多个站点执行此操作。