【问题标题】:Get only text ( pure text, not <script> and others inside body ) using javascript使用 javascript 仅获取文本(纯文本,而不是 <script> 和正文中的其他内容)
【发布时间】:2019-08-10 00:53:58
【问题描述】:

我正在尝试解析并获取所有文本(我们在网络浏览器中实际看到的文本),但我在正文中遇到了一些问题。

我正在尝试使用纯 javascript axios 和cheerio。

  try {
    await axios.get(url).then((response)=> {
      html = cheerio.load(response.data).text();
    });
  }catch(e){
  };

【问题讨论】:

  • 您遇到了什么具体问题?
  • 例如,我尝试使用上面的函数从网站获取所有文本,然后将每个单词存储在一个数组中,但我在数组中得到了这样的东西:'width="0px" ', 'style="display:nonevisibility:hidden">\n',

标签: javascript html node.js web-scraping


【解决方案1】:

只是一个想法。 如果您的响应包含有效的 html,您可以使用 jsdom 并将其转换为 DOM 对象。 https://www.npmjs.com/package/jsdom 之后就可以从这个对象中获取 .textContent 了。
另一种选择是这种快速而肮脏的解决方案:

response.data.replace(/<[^>]+>/g,'')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多