使用JavaScript获取外部页面的<title>

时间:2018-05-29 21:07:17

标签: javascript parsing zapier

&lt; p&gt;我想获取&lt; code&gt;&lt; title&gt;&lt; / code&gt;的内容使用JavaScript从任何指定的外部页面标记。具体来说,这是使用&lt; a href =&#34; https://zapier.com/help/code/" rel =&#34; nofollow noreferrer&#34;&gt;代码应用程序由Zapier&lt; / a&gt; (vanilla node.js v4.3.2),因此可能不支持其他库。&lt; / p&gt; &LT p为H.;&LT;代码&GT;取&LT; /代码&GT;是&lt; a href =&#34; https://zapier.com/help/code-examples/#introductory-http-example" rel =&#34; nofollow noreferrer&#34;&gt;支持&lt; / a&gt; ...&lt; / p&gt; &LT;预&GT;&LT;代码&GT;取(&#39; HTTP://example.com/')   .then(function(res){     return res.text();   })   .then(function(body){     var output = {id:1234,rawHTML:body};     callback(null,output);   })   .catch(回调); &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;文档状态:&#34;非常重要 - 请务必在异步示例中使用回调!&#34;&lt; / p&gt; &lt; p&gt;我正在学习JavaScript,并且已经搜索并尝试了几个小时的各种方法。我不完全理解&lt; em&gt;两个&lt; / em&gt;示例中的函数 - 我只需要返回一个&#34;标题&#34;,而不是整个正文。&lt; / p&gt; &lt; p&gt;我使用的是&lt; a href =&#34; https://textance.herokuapp.com/" rel =&#34; nofollow noreferrer&#34;&gt; API旨在获取页面标题&lt; / a&gt;,但它似乎有点不稳定。所以我希望我可以使用普通代码获得标题。&lt; / p&gt;

1 个答案:

答案 0 :(得分:1)

如果您使用的是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);