【问题标题】:Save the website text and eliminate the <tag> in source code保存网站文本,去掉源代码中的<tag>
【发布时间】:2014-04-26 15:00:11
【问题描述】:

当给定 html 文件并消除所有标签 时,如何仅在网页中获取文本, 在这里我只能从html文件中获取标签,,如何反过来工作(获取文本)。

tag_only = regexp(CharData, '<.*?>', 'match');

例如:

"<p><span class="dingus">&#9658;</span> put returns between paragraphs</p>StackExchange.ready(function () {
        StackExchange.using("postValidation", function () {
            StackExchange.postValidation.initOnBlurAndSubmit($('#post-form'), 2, 'answer');
        });

"

输出:在段落之间放置返回

【问题讨论】:

  • 为什么要使用 Matlab 解析 html 页面?这确实是错误的语言。无论如何,你的问题毫无意义。你是什​​么意思获取网页的文本?一些文本可能是由 javascript 动态生成的。或者 html 上的某些文本可能被 javascript 隐藏,因此实际上不会显示。
  • 我必须使用 matlab,因为 html 解析器只是我的功能之一。所以,你的意思是其他语言这样做更有好处,是python吗?
  • 如果是python,那么你有什么想法吗,我迫切需要那个。
  • python 或 perl 只是最常见的两种,它们都有许多 html 解析器。谷歌搜索 html parser perl 或 python 肯定会返回很多命中。并且仅仅因为你的程序的其余部分需要使用 Matlab,并不意味着你不能用另一种语言编写这部分。程序之间可以相互通信。
  • 是的,我以前没有用过python,所以,你有这个程序,这样我就不需要自己写了。我用python浏览了这些prob,有很多,你有什么建议或者直接可以使用程序来介绍,因为我的时间不多了

标签: matlab matlab-figure


【解决方案1】:

我不知道 matlab 但你可以尝试更改正则表达式:

tag_only = regexp(CharData, '>.*?<', 'match');

tag_only = regexp(CharData, '>[^<]*?<', 'match');

tag_only = regexp(CharData, '>[^<]+<', 'match');

我同意使用 python 会更容易,请检查库 ElementTree。

import xml.etree.ElementTree as etree
tree = etree.parse('file.xml')
root = tree.getroot()
for child in root:
    print(child.text)

我没有尝试过这段代码,但它应该离它不远。

【讨论】:

  • 我尝试了edi,但它不适用于没有的功能,使用这些“>
  • 它也会返回“'div>'”。
  • 我先得到所有然后保存在文本文件中,然后得到完整的html文件并减去文件,然后我将得到webtext。是否可以?我不知道如何取“完整的 html 文件”-“标签文件”=“网络文本”。有什么想法吗?
  • 你尝试过其他选择吗?
  • 尝试用空字符串替换所有标签,检查这个答案:stackoverflow.com/questions/13227160/…
【解决方案2】:

您可以直接从 Matlab (see) 调用 Java。

您可以选择多种 Html 解析器。随便挑一个。 This 看起来不错 - 但你有 choice

【讨论】:

  • 为什么我下载了3个后都无法打开?它显示我无法加载......我在这里下载了 d 安装程序jsoup.org/download
  • 我之前试过这个,下载后无法打开安装程序,只能使用在线html解析器try.jsoup.org
  • 你需要清楚地说明你做了什么以及错误是什么。没有要下载的安装程序 - 只有库。我认为您需要仔细按照我的第一个链接“直接从 Matlab 调用 Java”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-15
  • 1970-01-01
  • 2023-02-14
  • 1970-01-01
  • 2017-11-10
相关资源
最近更新 更多