从锚元素获取完整的绝对URL,该锚元素是由Cheerio在NodeJs中解析的

时间:2018-08-12 06:59:02

标签: javascript html node.js cheerio

我正在NodeJs中构建一个网络爬虫。基本上,该程序会自动执行链接的“单击”(获取该href的HTML),然后从这些页面收集某些数据。

问题是,与浏览器中的元素不同,我收到的href字符串似乎是“编写时”。例如,/ products / 34当然会在浏览器中显示为https://www.example.com/products/34,但是当由Cheerio收集时,href仍然是/ products / 34。

我正在使用element.attribs.href或$(element).attr('href')来获取href。我收到一个相对URL的事实迫使我执行诸如将基本URL附加到每个链接的操作。同样,这也会产生问题,因为不同的站点可以用不同的方式编写其href。

问题:有什么办法获取完整的URL?我正在使用axios获取某个页面的HTML字符串,然后以这种方式收集锚元素:

 const $ = cheerio.load(html);
 const scrapedLinks = $('a');
 const refs = [];

 scrapedLinks.each((index, link) => {
      refs.push(link.attribs.href)

  })

0 个答案:

没有答案