代码之家  ›  专栏  ›  技术社区  ›  Robert Andrews

使用JavaScript[复制]获取外部页面的<title>

  •  0
  • Robert Andrews  · 技术社区  · 6 年前

    我想知道 <title> 使用JavaScript从任何指定的外部页面进行标记。具体来说,这是使用 Code app by Zapier (vanilla node.js v4.3.2),因此可能不支持其他库。

    fetch supported ...

    fetch('http://example.com/')
      .then(function(res) {
        return res.text();
      })
      .then(function(body) {
        var output = {id: 1234, rawHTML: body};
        callback(null, output);
      })
      .catch(callback);
    

    文档声明:“非常重要-确保在异步示例中使用回调!”

    我正在学习JavaScript,已经搜索和尝试了几个小时的各种方法。我不完全理解这个问题 示例中的函数-我只需要返回一个“标题”,而不需要返回全文。

    我用的是一个 API designed to get page titles ,但它似乎有点古怪。所以我希望我能用普通代码得到标题。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Adam Harte    6 年前

    如果您使用的是Node JS,那么您可以使用 Request 要获取页面,请使用 Cheerio 解析其内容。要获得标题,您可以执行以下操作:

    const cheerio = require('cheerio');
    
    request('http://example.com/', function (error, response, body) 
    {
      if (error) {
          console.log(error);
          return
      }
      var $ = cheerio.load(body);
      var title = $("title").text();
    });
    

    如果Cheerio不可用,您可以使用更低技术的解决方案,只需使用一些简单的拆分。不是很强壮,但可能会得到你想要的。

    fetch('http://example.com/')
      .then(function(res) {
        var body = res.text();
        var title = body.split('<title>')[1].split('</title>')[0]
      })
      .catch(callback);