我有这样的文字:
text = """<div>
<h1>Title</h1>
<p>A long text........ </p>
<a href=""> a link </a>
</div>"""
Run Code Online (Sandbox Code Playgroud)
使用纯Python,没有外部模块我想要这个:
>>> print remove_tags(text)
Title A long text..... a link
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用lxml.html.fromstring(text).text_content()来实现它,但我需要在纯Python中使用内置或std库实现相同的2.6+
我怎样才能做到这一点?
我有一个包含html标记的字符串,如链接,粗体文本等.
我想剥离所有标签,所以我只有原始文本.
最好的方法是什么?正则表达式?
我一直在使用HTML Parser从网站上删除数据并在执行此操作时剥离html编码.我知道各种各样的模块,比如Beautiful Soup,但是决定走不依赖"外部"模块的道路.Eloff提供了一个代码:从Python中的字符串中删除HTML
from HTMLParser import HTMLParser
class MLStripper(HTMLParser):
def __init__(self):
self.reset()
self.fed = []
def handle_data(self, d):
self.fed.append(d)
def get_data(self):
return ''.join(self.fed)
def strip_tags(html):
s = MLStripper()
s.feed(html)
return s.get_data()
Run Code Online (Sandbox Code Playgroud)
它适用于Python 3.1.但是,我最近升级到Python 3.2.x并发现我收到有关HTML Parser代码的错误,如上所述.
我的第一个错误指向该行:
s.feed(html)
Run Code Online (Sandbox Code Playgroud)
......错误说......
AttributeError: 'MLStripper' object has no attribute 'strict'
Run Code Online (Sandbox Code Playgroud)
因此,经过一些研究,我在顶线添加"strict = True",使其成为......
class MLStripper(HTMLParser, strict=True)
Run Code Online (Sandbox Code Playgroud)
但是,我得到了新的错误:
TypeError: type() takes 1 or 3 arguments
Run Code Online (Sandbox Code Playgroud)
为了看看会发生什么,我删除了"self"参数并留在"strict = True"中......这放弃了错误:
NameError: global name 'self' is not defined
Run Code Online (Sandbox Code Playgroud)
......我得到了"我猜测猜测"的感觉.
我不知道该class MLStripper(HTMLParser)行中的第三个参数是什么,之后self和strict=True …
我正在尝试使用Python来删除文档中的XML标记,这是我新手使用的语言.这是我第一次尝试使用正则表达式,whixh实际上是一个希望最好的想法.
mfile = file("somefile.xml","w")
for line in mfile:
re.sub('<./>',"",line) #trying to match elements between < and />
Run Code Online (Sandbox Code Playgroud)
那次失败了.我想知道如何使用正则表达式来完成它.
其次,我用Google搜索并找到:http://code.activestate.com/recipes/440481-strips-xmlhtml-tags-from-string/
这似乎工作.但我想知道是否有一种更简单的方法来摆脱所有的xml标签?也许使用ElementTree?
我需要在服务器端在运行时从随机网页中提取纯文本。我使用Google App Engine和可读性python端口。有很多。
我使用的是Yuri的最新版本,并且似乎正在积极开发中。我设法使它使用Python 2.7在Google App Engine上运行。现在的“问题”是它返回HTML,而我需要纯文本。
这篇Stackoverflow文章中有关链接提取的建议是使用BeatifulSoup。如果没有其他选择,我会的。BeatifulSoup将是另一个依赖项,因为我使用基于lxml的版本。
我的问题:
我已经使用urlopen下载了一个页面.如何从中删除所有html标签?是否有任何正则表达式替换所有<*>标签?
我的问题与以下内容有些相关:从Python中的字符串中删除HTML
我正在寻找一种从文本中删除HTML代码的简单方法.例如:
string = 'foo <SOME_VALID_HTML_TAG> something </SOME_VALID_HTML_TAG> bar'
stripIt(string)
Run Code Online (Sandbox Code Playgroud)
然后会屈服foo bar.
有什么简单的工具可以在Python中实现这一点吗?HTML代码可以嵌套.
目前,我正试图在sec.gov上搜索10-K提交文本文件.
这是一个示例文本文件:https:
//www.sec.gov/Archives/edgar/data/320193/000119312515356351/0001193125-15-356351.txt
文本文档包含HTML标记,CSS样式和JavaScript等内容.理想情况下,我想在删除所有标签和样式后仅删除内容.
首先,我尝试了get_text()BeautifulSoup 的明显方法.这没有成功.
然后我尝试使用正则表达式删除<和>之间的所有内容.不幸的是,这也没有完全解决.它保留了一些标签,样式和脚本.
有没有人为我实现目标有一个干净的解决方案?
到目前为止,这是我的代码:
import requests
import re
url = 'https://www.sec.gov/Archives/edgar/data/320193/000119312515356351/0001193125-15-356351.txt'
response = requests.get(url)
text = re.sub('<.*?>', '', response.text)
print(text)
Run Code Online (Sandbox Code Playgroud) 使用 python 正则表达式,如何删除所有html 中的标签?标签有时具有样式,如下所示:
<sup style="vertical-align:top;line-height:120%;font-size:7pt">(1)</sup>
Run Code Online (Sandbox Code Playgroud)
我想删除一个较大的 html 字符串中的sup 标签之间的所有内容(包括sup 标签)。
我在 Python 3.5.1 上使用 Pandas 库。如何从字段值中删除 html 标签?这是我的输入和输出:
我的代码返回了一个错误:
import pandas as pd
code=[1,2,3]
overview =['<p>Environments subject.</p>',
'<ul><li> property ;</li></ul><ul><li>markets and exchange;</li></ul>',
'<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">']
# '<p class="SSPBodyText" style="padding: 0cm; text-align: justify;">The subject.</p>']
df= pd.DataFrame(overview,code)
df.columns = ['overview']
df['overview_copy'] = df['overview']
# print(df)
tags_list = ['<p>' ,'</p>' , '<p*>',
'<ul>','</ul>',
'<li>','</li>',
'<br>',
'<strong>','</strong>',
'<span*>','</span>',
'<a href*>','</a>',
'<em>','</em>']
for tag in tags_list:
# df['overview_copy'] = df['overview_copy'].str.replace(tag, '')
df['overview_copy'].replace(to_replace=tag, value='', regex=True, inplace=True)
print(df)
Run Code Online (Sandbox Code Playgroud) 我想处理一些HTML代码并删除标签,如示例中所示:
"<p> <b>这个</ b>是一个非常有趣的段落.</ p>"结果"这是一个非常有趣的段落."
我使用Python作为技术; 你知道我可以用来删除HTML标签的任何框架吗?
谢谢!
python ×10
regex ×5
html ×4
python-3.x ×3
html-parsing ×2
web-scraping ×2
xml ×2
arguments ×1
pandas ×1
parsing ×1
readability ×1
string ×1
stripping ×1