Javascript 我想使用浏览器中的扩展名从Google文档中提取文本,并保留语义换行符

Javascript 我想使用浏览器中的扩展名从Google文档中提取文本,并保留语义换行符,javascript,google-docs,Javascript,Google Docs,我有一个浏览器扩展(Firefox和Chrome),它的工作原理很像拼写检查器。当从input和textarea甚至大多数contenteditable元素中获取文本值时,它通常工作正常。然而,谷歌文档喜欢插入\n,因为视觉上的原因,这使得获取语义段落和句子具有挑战性 e、 g.案文: A Long Heading That Visually Wraps With No Period On The End A sentence that runs long enough that it vi

我有一个浏览器扩展(Firefox和Chrome),它的工作原理很像拼写检查器。当从
input
textarea
甚至大多数
contenteditable
元素中获取文本值时,它通常工作正常。然而,谷歌文档喜欢插入
\n
,因为视觉上的原因,这使得获取语义段落和句子具有挑战性

e、 g.案文:

A Long Heading That Visually Wraps With No Period On The End
 
A sentence that runs long enough that it visually wraps in Google Docs and ends up with extra line breaks. Another shorter sentence.
从Google Docs DOM中提取并通过
JSON运行时,stringify
显示如下:

"\"A Long Heading That Visually Wraps \\nWith No Period On The End \\n  \\nA sentence that runs long enough that it visually wraps in Google Docs and ends up with extra \\nline breaks. Another shorter sentence.\""
请注意
之前的
\\n
带有非语义的
,然后是标题后面的
\\n\\n
带有语义的,然后是
\\n
前面的
,同样非语义的

在这种情况下,我可以
text.replace(/\n\n/g,“!!!”).replace(/\n/g,”).replace(/!!!/g,“\n\n')
,以获取文本的(更多)语义体

但是,如果标题后面没有双精度
\n
,则它不起作用

你可以看到它是多么脆弱

谷歌文档是否有一个JavaScript DOM/API,它不需要额外授权,这样我就可以获得文档的干净文本?用户已经安装了此扩展,并且必须为其Google Drive授权应用程序是不可行的


或者,是否有JavaScript语句标记器?否则,我将不得不使用NTLK/spaCy语句标记器将原始文本发送到Python API端点。

根据要提取数据的文档是否公开,您的应用程序可能需要授权才能提取干净的数据

无论哪种方式,使用或甚至都是获取干净正文数据甚至选择标题、副标题等的绝佳选择,提供了比提取文档文本数据更进一步的功能

注意:如果您试图访问公共文档,则需要使用。由于它不是公共资源,您需要使用有权访问此资源的帐户的凭据


我希望这对你有帮助。如果您还需要什么,或者您不了解什么,请告诉我。:)

谢谢Mateo,我知道应用程序脚本和文档API,但如果不要求用户授权新应用程序,我无法使用浏览器扩展中的任何一个。由于浏览器扩展在Google Docs选项卡内运行,我希望能够访问文档API。除非您用户的文档是公开的,否则您需要用户通过oAuth 2.0授权才能使用应用程序脚本应用程序或文档API。我已经更新了我的答案,更详细地说明了这一点。谢谢Mateo,似乎我是在要求不可能的事情。如果没有对文档的授权API访问,我们将使用spaCy/NLTK提取句子,这比许多JavaScript正则表达式更健壮。