如何编写一个简易的node爬虫获取任意网址的title呢?

方法的参数为url 然后 返回值为 title。

如:

function getTitle(url){
 .......
 return title
}
getTitle('http://www.baidu.com')  

得到 "百度"

getTIttle('http://www.126.com') 

得到 "网易邮箱"

如下图,如何写一个方法获取任意网址的title呢?

clipboard.png

阅读 5.5k
7 个回答

纯前端使用ajax或者iframe都会存在跨域问题。
需要服务端进行请求指定地址,获取到地址对应的页面,然后提取出title标签中内容。

使用superagent+cheerio

superagent.get(url)
    .end((err, res) => {
        const $ = cheerio.load(res.text)
        console.log($('title').text())
    })
// npm install request
var request = require('request');
request('https://www.taobao.com', function (error, response, body) {
    var array = /<title>(.*)<\/title>/gi.exec(body);
    if (array != null) {
        console.log('title:', array[1]);
    }
});

获取任意网址的html页面,获取页面中<title>标签里面的内容。
如果想封装成一个方法,那就将不同的功能分别写成函数,依次调用。

需要通过ajax获取指定url的页面内容,然后再从中分析出其标题

任意是做不到的,因为有的网站对cookie有要求,不符合的话是直接403的。

对于没有验证要求的网站,最基本的使用http.get获取html再解析即可。解析可以用正则或者cheerio

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题