相关疑难解决方法(0)

用于从字符串中删除HTML标记的Python代码

我有这样的文字:

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 python xml string parsing

112
推荐指数
4
解决办法
19万
查看次数

使用python,从字符串中删除HTML标记/格式

我有一个包含html标记的字符串,如链接,粗体文本等.

我想剥离所有标签,所以我只有原始文本.

最好的方法是什么?正则表达式?

python regex

15
推荐指数
3
解决办法
4万
查看次数

在Python 3.2中使用HTMLParser

我一直在使用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)行中的第三个参数是什么,之后selfstrict=True …

arguments html-parsing stripping web-scraping python-3.x

14
推荐指数
1
解决办法
2万
查看次数

Python从文档中剥离XML标记

我正在尝试使用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?

python regex xml

9
推荐指数
3
解决办法
2万
查看次数

有没有一种方法可以使用可读性和python来提取文本,而不是HTML?

我需要在服务器端在运行时从随机网页中提取纯文本。我使用Google App Engine和可读性python端口。有很多。

  1. gfxmonk的早期版本,基于BeautifulSoup
  2. minvolai基于gfxmonk的版本使用的是lxml而不是BeautifulSoap,尽管它引入了对lxml的依赖,但使其速度更快(根据minvolai,请参阅项目页面)。
  3. Yuri Baburov又名buriy的版本。与minvolai相同,取决​​于lxml。还取决于chardet 来检测编码。

我使用的是Yuri的最新版本,并且似乎正在积极开发中。我设法使它使用Python 2.7在Google App Engine上运行。现在的“问题”是它返回HTML,而我需要纯文本。

这篇Stackoverflow文章中有关链接提取的建议是使用BeatifulSoup。如果没有其他选择,我会的。BeatifulSoup将是另一个依赖项,因为我使用基于lxml的版本。

我的问题:

  • 有没有一种方法可以从我使用的Python Readability版本中获取纯文本而无需分叉代码?
  • 有没有一种方法可以轻松地从Python可读性的HTML结果中检索纯文本,例如使用lxml,BeatifulSoap,RegEx或其他方法
  • 如果对上述问题的回答为“是”或“是”但不容易,那么修改Python可读性的方法是什么。这样的修改是否(足以让足够多的人)足以使这种扩展正式化?

python readability text-extraction html-content-extraction

6
推荐指数
2
解决办法
4925
查看次数

如何从下载的页面中删除所有html标签

我已经使用urlopen下载了一个页面.如何从中删除所有html标签?是否有任何正则表达式替换所有<*>标签?

python

5
推荐指数
3
解决办法
2万
查看次数

Python:从文本数据中删除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代码可以嵌套.

html python

5
推荐指数
2
解决办法
7802
查看次数

从HTML,CSS和JavaScript中获取干净的字符串

目前,我正试图在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 regex web-scraping python-3.x

5
推荐指数
1
解决办法
194
查看次数

使用Python和正则表达式,如何从html中删除&lt;sup&gt;标签?

使用 python 正则表达式,如何删除所有html 中的标签?标签有时具有样式,如下所示:

<sup style="vertical-align:top;line-height:120%;font-size:7pt">(1)</sup>
Run Code Online (Sandbox Code Playgroud)

我想删除一个较大的 html 字符串中的sup 标签之间的所有内容(包括sup 标签)。

html python regex

4
推荐指数
1
解决办法
1515
查看次数

删除熊猫中的html标签

我在 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 python regex python-3.x pandas

4
推荐指数
2
解决办法
9187
查看次数

HTML代码处理

我想处理一些HTML代码并删除标签,如示例中所示:

"<p> <b>这个</ b>是一个非常有趣的段落.</ p>"结果"这是一个非常有趣的段落."

我使用Python作为技术; 你知道我可以用来删除HTML标签的任何框架吗?

谢谢!

python html-parsing

3
推荐指数
1
解决办法
909
查看次数