从嘈杂的字符串中提取文本。。python
我有一些html文档,我想从中提取一个非常特殊的文本。 现在,此文本始终位于从嘈杂的字符串中提取文本。。python,python,Python,我有一些html文档,我想从中提取一个非常特殊的文本。 现在,此文本始终位于 <div class = "fix">text </div> 文本 现在,有时发生的是。。。还有其他的开场白……比如: <div class = "fix"> part of text <div something> other text </div> some more text </div> 部分文本其他文本更多文本 现在。。我想提取
<div class = "fix">text </div>
文本
现在,有时发生的是。。。还有其他的开场白……比如:
<div class = "fix"> part of text <div something> other text </div> some more text </div>
部分文本其他文本更多文本
现在。。我想提取所有对应的文本
<div class = "fix"> </div> markups??
标记??
我该怎么做 这里有一个非常简单的解决方案,它使用非贪婪正则表达式删除所有html标记:
import re
s = "<div class = \"fix\"> part of text <div something> other text </div> some more text </div>"
s_text = re.sub(r'<.*?>', '', s)
重新导入
s=“部分文本其他文本更多文本”
s_text=re.sub(r'','',s)
然后,值为:
print(s)
<div class = "fix"> part of text <div something> other text </div> some more text </div>
print(s_text)
part of text other text some more text
打印
部分文本其他文本更多文本
打印(s_文本)
部分文本其他文本更多文本
这里有一个非常简单的解决方案,它使用非贪婪的正则表达式删除所有html标记:
import re
s = "<div class = \"fix\"> part of text <div something> other text </div> some more text </div>"
s_text = re.sub(r'<.*?>', '', s)
重新导入
s=“部分文本其他文本更多文本”
s_text=re.sub(r'','',s)
然后,值为:
print(s)
<div class = "fix"> part of text <div something> other text </div> some more text </div>
print(s_text)
part of text other text some more text
打印
部分文本其他文本更多文本
打印(s_文本)
部分文本其他文本更多文本
我会使用这些库。它们是为此而构建的,只要您的数据是正确的html,它就会准确地找到您要查找的内容。他们有相当好的文档,而且非常直接,即使对于初学者也是如此。如果您的文件在web上的某个地方无法访问直接html,请使用urllib获取html
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc)
soup.find({"class":"fix"})
如果有多个项目,请改用“全部查找”。这应该给你你想要的(大致)
编辑:固定示例(类是一个关键字,因此不能使用通常的(attr=“blah”)我会使用这些库。它们是为此而构建的,只要你的数据是正确的html,它就会准确地找到你要找的内容。它们有相当好的文档,而且非常简单,即使对于初学者也是如此。如果你的文件在web上的某个地方,你无法访问直接的html,请使用url获取html自由党
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc)
soup.find({"class":"fix"})
如果有不止一个项目,使用find_all代替。这会给出你想要的(大致)
编辑:固定示例(类是一个关键字,因此不能使用通常的(attr=“blah”)您的意思是
document.getElementById('fix')).innerText
或只保留第一个
之前的文本,而不考虑DOM?为什么不使用像BeautifulSoup这样的html解析器?@Greg:是的,我现在正在研究它的示例。我不知道它。你的意思是document.getElementById('fix')).innerText
或只保留第一个
之前的文本,而不考虑DOM?为什么不使用像BeautifulSoup这样的html解析器?@Greg:是的,我现在正在查看它的示例。我不知道ITI,我得到了错误text=soup.find(class=“fix”)语法错误:语法无效,指针指向最后一个“s”在类中?您好,我得到了错误文本=soup.find(class=“fix”)SyntaxError:指针指向类中最后一个“s”的无效语法?