我需要匹配所有这些开始标记:
<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)
但不是这些:
<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)
我想出了这个,并希望确保我做对了.我只抓住了a-z.
<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)
我相信它说:
/,然后我有这个权利吗?更重要的是,你怎么看?
我想使用Python从HTML文件中提取文本.如果我从浏览器复制文本并将其粘贴到记事本中,我想要的输出基本相同.
我想要比使用可能在格式不正确的HTML上失败的正则表达式更强大的东西.我见过很多人推荐Beautiful Soup,但是我使用它时遇到了一些问题.首先,它选择了不需要的文本,例如JavaScript源代码.此外,它没有解释HTML实体.例如,我希望' 在HTML源代码中转换为文本中的撇号,就像我将浏览器内容粘贴到记事本中一样.
更新 html2text看起来很有希 它正确处理HTML实体并忽略JavaScript.但是,它并不完全产生纯文本; 它会产生降价,然后必须将其转换为纯文本.它没有示例或文档,但代码看起来很干净.
相关问题:
如何从Python中删除字符串中的所有HTML?例如,我该怎么转:
blah blah <a href="blah">link</a>
Run Code Online (Sandbox Code Playgroud)
成
blah blah link
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在寻找一个python模块,它将帮助我摆脱HTML标签,但保留文本值.之前我尝试过BeautifulSoup,我无法弄清楚如何完成这个简单的任务.我尝试搜索可以执行此操作的Python模块,但它们似乎都依赖于其他在AppEngine上运行不正常的库.
下面是Ruby的sanitize库中的示例代码,这就是我在Python中所追求的:
require 'rubygems'
require 'sanitize'
html = '<b><a href="http://foo.com/">foo</a></b><img src="http://foo.com/bar.jpg" />'
Sanitize.clean(html) # => 'foo'
Run Code Online (Sandbox Code Playgroud)
谢谢你的建议.
-e