如何使用 javascript 将网页作为纯文本获取,而没有任何 html? [复制]

     2023-02-16     117

关键词:

【中文标题】如何使用 javascript 将网页作为纯文本获取,而没有任何 html? [复制]【英文标题】:How to get a webpage as plain text without any html using javascript? [duplicate] 【发布时间】:2011-02-27 08:24:27 【问题描述】:

我正在尝试找到一种方法,使用 javascript 或 jquery 编写一个函数,该函数从页面中删除所有 html 标签,只给我这个页面的纯文本。

如何做到这一点?有什么想法吗?

【问题讨论】:

你想要一个返回<body>的文本内容的字符串,然后呢? 这看起来很有用:***.com/questions/822452/… 【参考方案1】:

IE 和 WebKit

document.body.innerText

其他:

document.body.textContent

(根据 Amr ElGarhy 的建议)

大多数 js 框架都实现了跨浏览器的方式来执行此操作。这通常是这样实现的:

text = document.body.textContent || document.body.innerText;

似乎 WebKit 使用 textContent 保留了一些格式,而使用 innerText 剥离了所有内容。

【讨论】:

我认为这只适用于 Internet Explorer 它在我的 WebKit 中运行良好。 确实,似乎只有 Firefox 有问题。但在 Opera 中,它在打印 innerText 时仍然给我 HTML 标签 在其他浏览器中使用 document.body.textContent 你的回答很完整,涵盖了我想要的一切,谢谢【参考方案2】:

这取决于您要保留多少格式。但是使用 jQuery 你可以这样做:

jQuery(document.body).text();

【讨论】:

【参考方案3】:

textContent 或 innerText 的唯一问题是它们可以将相邻节点的文本挤在一起, 它们之间没有任何空白。

如果这很重要,您可以通过 body 或其他容器进行诅咒,并以数组的形式返回文本, 并用空格或换行符将它们连接起来。

document.deepText= function(hoo)
    var A= [], tem, tx;
    if(hoo)
        hoo= hoo.firstChild;
        while(hoo!= null)
            if(hoo.nodeType== 3)
                tx= hoo.data || '';
                if(/\S/.test(tx)) A[A.length]= tx;
            
            else A= A.concat(document.deepText(hoo));
            hoo= hoo.nextSibling;
        
    
    return A;

alert(document.deepText(document.body).join(' '))
// return document.deepText(document.body).join('\n')

【讨论】:

添加nodeType of 4 (CDATA) 可能是个好主意,以防有人将他们的文本包含在其中。 (至少 jQuery 是这样做的。)【参考方案4】:

我必须将 HTML 电子邮件中的富文本转换为纯文本。以下在 IE 中对我有用(obj 是一个 jQuery 对象):

function getTextFromHTML(obj) 
    var ni = document.createNodeIterator(obj[0], NodeFilter.SHOW_TEXT, null, false);
    var nodeLine = ni.nextNode();   // go to first node of our NodeIterator
    var plainText = "";

    while (nodeLine) 
        plainText += nodeLine.nodeValue + "\n";
        nodeLine = ni.nextNode();
    

    return plainText;
 

【讨论】:

【参考方案5】:

使用htmlClean。

【讨论】:

【参考方案6】:

我会使用:

<script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.js"></script>
<script type="text/javascript">
    jQuery.fn.stripTags = function()  return this.replaceWith( this.html().replace(/<\/?[^>]+>/gi, '') ); ;
    jQuery('head').stripTags();

    $(document).ready(function() 
        $("img").each(function() 
            jQuery(this).remove();
        );
    );
</script>

这将不会释放任何样式,但会删除所有标签。

这是你想要的吗?

[EDIT] 现已编辑为包括删除图像标签[/EDIT]

【讨论】:

您不应尝试使用正则表达式解析 HTML。

Rails - 邮件,将正文作为纯文本获取

...[:message])如此处所示:http://docs.heroku.com/cloudmailin它展示了如何将message.body获取为HTML,如何获取纯文本版本?谢谢【问题讨论】:【参 查看详情

使用 IIS 将没有扩展名的文件作为纯文本提供

】使用IIS将没有扩展名的文件作为纯文本提供【英文标题】:usingIIStoservefileswithoutextensionasplaintext【发布时间】:2015-03-1015:03:08【问题描述】:我尝试使用来自IIS:Howtoserveafilewithoutextension?的答案<?xmlversion="1.0"encoding="UTF-8"?><... 查看详情

将博客文章作为纯文本存储在 mongodb 中

...为后端,mongodb用于数据库。到目前为止一切顺利。我想使用mongoose将全部博客文章文本存储在mongodb的一个字段中。当然,我会收到“keytoolargetoindexerror”,因为大于10 查看详情

将博客文章作为纯文本存储在 mongodb 中

...为后端,mongodb用于数据库。到目前为止一切顺利。我想使用mongoose将全部博客文章文本存储在mongodb的一个字段中。当然,我会收到“keytoolargetoindexerror”,因为大于10 查看详情

Javascript:如何从网页中检索文本

】Javascript:如何从网页中检索文本【英文标题】:Javascript:Howtoretrievetextfromawebpage【发布时间】:2012-10-2316:56:22【问题描述】:我想检索网页中的文本作为字符串。这可能吗?我是Javascript新手。例如:varurl="http://en.wikipedia.org/wiki... 查看详情

如何使用javascript编写文本

...复的内容文本用作图像,但我读到,如果我将此文本作为javascript放置,则Google不会对其进行索引。那么如何使此段为javascript。假设文本是:xxxxxxxxxxxxxxxxxxxxxx因此,请给我使用的html代码。答案您需要提出您当前正在尝试的问题 查看详情

如何将socket_read值获取为从PHP websocket中的javascript发送的纯文本

】如何将socket_read值获取为从PHPwebsocket中的javascript发送的纯文本【英文标题】:howtogetsocket_readvaluetoplaintextsentfromjavascriptinPHPwebsocket【发布时间】:2021-01-0916:00:12【问题描述】:我正在尝试制作我的小型websocketphp类,我想在其中... 查看详情

纯 javascript 文本滑块,可更改 php 中的文本显示

】纯javascript文本滑块,可更改php中的文本显示【英文标题】:purejavascripttextsliderthatchangesdisplayoftextfromphp【发布时间】:2014-10-2506:22:40【问题描述】:我正在开展一个项目,该项目为我的网站提供证词幻灯片。我正在使用php和mysq... 查看详情

将网页转换为纯文本..?

】将网页转换为纯文本..?【英文标题】:Convertwebpageintoplaintext..?【发布时间】:2011-10-0108:51:44【问题描述】:我正在尝试将网页转换为纯文本。但是,如果我遇到表格,我也会得到td和tr标签。如果我替换那些表格标签,那么我... 查看详情

如何使用 Ajax 将 Summernote 文本从 JSON 数据转换为纯文本?

】如何使用Ajax将Summernote文本从JSON数据转换为纯文本?【英文标题】:HowcangetSummernotetexttoplaintextfromJSONdatausingAjax?【发布时间】:2021-09-3023:06:17【问题描述】:我使用Summernote文本编辑器输入数据。但是现在所有的数据都带有HTML... 查看详情

通过电子邮件将 Google 文档作为纯文本附件发送

...【发布时间】:2013-07-2622:19:44【问题描述】:我正在尝试使用GoogleApps脚本以纯文本电子邮件附件的形式发送Google文档(这里没什么特别的,只是一个简单的脚本构建的文本文档)。我可以通过进入我的驱动器并选择“文件>以... 查看详情

纯javascript的appendChild($variable)中的文本+变量连接作为字符串

】纯javascript的appendChild($variable)中的文本+变量连接作为字符串【英文标题】:text+variableconcatenationasstringinsideappendChild($variable)withpurejavascript【发布时间】:2015-03-2900:26:35【问题描述】:我知道零javascript。我通过转换和组合小脚本... 查看详情

抓取javascript生成的网页

将javascript内容转换为HTML以将其用于脚本时,我遇到了问题。我使用了多种方法作为phantomjs或pythonQT库,它们都很好地获得了大部分内容,但问题是页面内部有javascript按钮,如下所示:Plsseescreenshothere现在,当我从脚本加载此页... 查看详情

Javascript:将html打印为纯文本[重复]

】Javascript:将html打印为纯文本[重复]【英文标题】:Javascript:printhtmlasplaintext[duplicate]【发布时间】:2017-08-2820:38:16【问题描述】:我正在尝试从javascript打印纯html,但不知道该怎么做。示例:$(\'#elem\').html(\'Thisisanormalstring\');//--&... 查看详情

如何使用javascript从网页中获取点击或选择的文本? [复制]

】如何使用javascript从网页中获取点击或选择的文本?[复制]【英文标题】:howtogettheclickedorselectedtextfromthewebpagesusingjavascript?[duplicate]【发布时间】:2020-11-0321:38:00【问题描述】:如何使用javascript从网页中获取点击或选择的文本?... 查看详情

如何将文本作为 npm 脚本命令添加到文件中

...009:14:04【问题描述】:我正在写一个书签。我需要将"javascript:"添加到已编译、缩小的JavaScript中。我正在寻找一种使用NPMpackage.json脚本来完成此任务的方法。"scripts":"oar:transpil 查看详情

将 Firestore 文档作为纯 Javascript 对象获取?

】将Firestore文档作为纯Javascript对象获取?【英文标题】:GetFirestoredocumentasplainJavascriptobject?【发布时间】:2018-06-1119:16:27【问题描述】:我目前正在手动遍历firestore中的文档字段并将它们放入我字符串化为JSON的对象中。有没有... 查看详情

如何将网页保存为文本文件 [Python]

】如何将网页保存为文本文件[Python]【英文标题】:Howtosavewebpageastextfile[Python]【发布时间】:2016-02-0300:03:19【问题描述】:我想将网页(所有内容)保存为文本文件。(好像您确实右键单击网页->“另存为”->“另存为文本... 查看详情