在 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使用mechanize模拟浏览器

Python 中哪个最好:urllib2、PycURL 或 mechanize?

Python Mechanize 选择一个没有名字的表单

使用 Python mechanize 填写不在表单中的 HTML-InputFields

在 python mechanize 模块中写入文本输入的问题

使用 Python Mechanize 上传文件