在 python 中使用 mechanize 剥离 html 标签并仅返回文本
Posted
技术标签:
【中文标题】在 python 中使用 mechanize 剥离 html 标签并仅返回文本【英文标题】:strip the html tags and return only text using mechanize in python 【发布时间】:2014-03-25 03:56:42 【问题描述】:我编写了一个代码,通过使用 mechanize 提供搜索词来从网站中提取信息。 结果有html标签和其他细节以及文本。我只需要提取文本。帮助我修改代码
import mechanize
br=mechanize.Browser()
br.set_handle_robots( False )
br.addheaders = [('User-agent', 'Firefox')]
r=br.open("http://www.drugs.com/search-wildcard-phonetic.html")
br.select_form(nr=0)
br.form['searchterm']='panadol'
br.submit()
print br.response().read()
【问题讨论】:
您是否在某个标签内寻找某些特定文本? @SpencerGrantDoak 是的 我强烈建议只使用正则表达式。我没有使用机械化,但我假设br.response().read()
返回一个字符串。如果是这样,您可以导入正则表达式并获取 html 标签内的数据。
【参考方案1】:
这似乎是同一个问题 Python code to remove HTML tags from a string 指向 Strip HTML from strings in Python
复制该问题的最佳答案给出:
我总是使用这个函数来去除 HTML 标签,因为它只需要 Python 标准库:
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()
【讨论】:
以上是关于在 python 中使用 mechanize 剥离 html 标签并仅返回文本的主要内容,如果未能解决你的问题,请参考以下文章
Python 中哪个最好:urllib2、PycURL 或 mechanize?
使用 Python mechanize 填写不在表单中的 HTML-InputFields