我有下面的html片段,只需要从中间提取文本
<p>Current</p> and <p>Archive</p>
Html块看起来像:
<p>Current</p>
<a href="some link to somewhere 1">File1</a>
<br>
<a href="some link to somewhere 2">File2</a>
<br>
<a href="some link to somewhere 3">File3</a>
<br>
<p>Archive</p>
<a href="Some another link to another file">Some another file</a>
因此,所需的输出应该类似于File1、File2、File3。
这就是我迄今为止所尝试的
import re
m = re.compile('<p>Current</p>(.*?)<p>Archive</p>').search(text)
但没有按预期工作。
有什么简单的解决方案可以在python中指定的html标记块之间提取文本吗?
from bs4 import BeautifulSoup as bs
html_text = """
<p>Current</p>
<a href="some link to somewhere 1">File1</a>
<br>
<a href="some link to somewhere 2">File2</a>
<br>
<a href="some link to somewhere 3">File3</a>
<br>
<p>Archive</p>
<a href="Some another link to another file">Some another file</a>"""
a_tag = soup.find_all("a")
text = []
for i in a_tag:
text.append(get_text())
print (text)
输出:
['File1', 'File2', 'File3', 'Some another file']
BeautifulSoup库对于解析html文件和从中获取文本非常有用。
如果您坚持使用regex,可以将其与list comp结合使用,如下所示:
chunk="""<p>Current</p>
<a href="some link to somewhere 1">File1</a>
<br>
<a href="some link to somewhere 2">File2</a>
<br>
<a href="some link to somewhere 3">File3</a>
<br>
<p>Archive</p>
<a href="Some another link to another file">Some another file</a>"""
import re
# find all things between > and < the shorter the better
found = re.findall(r">(.+?)<",chunk)
# only use the stuff after "Current" before "Archive"
found[:] = found[ found.index("Current")+1:found.index("Archive")]
print(found) # python 3 syntax, remove () for python2.7
输出:
['File1', 'File2', 'File3']
问题内容: 我有一个字符串: (它的输出超过两行,因此其中必须有一个\ n。 我希望提取标签之间的字符串。在这种情况下,它是7月28日,但是可能是另一个日期或其他某个数字。 1)从字体标签之间提取值的最佳方法是什么?我本以为可以提取和之间的所有内容。 编辑:第二个问题删除。 问题答案: 尽管可以使用正则表达式解析任意HTML,但这通常是一个死亡陷阱。有很多很棒的用于解析HTML的工具,包括Beau
问题内容: 我有以下格式的文本文件: 我想提取.txt文件中DELIMITER1和DELIMITER2之间的每个s块 这是我当前的无效代码: 有任何想法吗? 问题答案: 您可以使用简化这一个正则表达式中,DOTALL标志。 这也利用了非贪婪运算符,因此将找到多个DELIMITER1-DELIMITER2对的非重叠块。
我正在寻找一个正则表达式,它必须在不同类型的HTML标记之间提取文本。 对于前任: <代码> <代码> <代码> 我找到了这个特殊的片段
问题内容: 我想使用Python从HTML文件中提取文本。如果要从浏览器复制文本并将其粘贴到记事本中,我希望得到的输出基本上相同。 我想要比使用正则表达式更强大的功能,而正则表达式可能在格式不正确的HTML上失败。我见过很多人推荐美丽汤,但是使用它时遇到了一些问题。例如,它拾取了不需要的文本,例如JavaScript源。此外,它没有解释HTML实体。例如,我希望&#39; 在HTML源代码中转换为
问题内容: 我有一个像下面这样的文字 [:de] 15岁的BB2女士在holzbauweise的rkische Gulet的眉毛,Annehmlichkeiten的游艇和Eleganz einer的专业游艇,durch的高品质的盲人眉毛,glichen Holzverare的时尚和15岁的女孩密西西比州杜尚卡宾/ WC。Salon and Deck sind ausgesprochen gro脽z
我正在尝试从 html 标签中提取字符串 我知道还有其他类似或甚至相同的问题得到了回答,但这些问题的答案似乎对我不起作用 此输出 不 注意,我使用了来自不同答案的其他正则表达式,得到了相同的结果,我也不熟悉正则表达式,所以这可能是一个无意义的问题。