【问题标题】:reading href in a loop from python code从python代码循环读取href
【发布时间】:2016-01-27 13:57:36
【问题描述】:

我有一段看起来像这样的 html 代码:

<div class="menu-item"> 
      <a class="menu-link" href="/dashboard/apple"> C-apple</a>
</div>
<div class="menu-item"> 
      <a class="menu-link" href="/dashboard/bench"> C-bench</a>
</div>

但我想从 python 列表中读取 href="/dashboard/{name}"&gt; {title} &lt;/a&gt; 并使用 for 循环或 while 循环而不是硬编码来显示它,我该怎么做? 谢谢

【问题讨论】:

  • 尝试用 beautifulsoup 加载它

标签: python html model-view-controller


【解决方案1】:

您可以查找HTMLParser

这是一个例子

from HTMLParser import HTMLParser

# create a subclass and override the handler methods
class MyHTMLParser(HTMLParser):
    a = 0
    def handle_starttag(self, tag, attrs):
        if tag == 'a':
            self.a = 1
            print 'name:', dict(attrs)['href'].split('/')[-1]
    def handle_data(self, data):
        if self.a == 1:
            print 'title:', data
    def handle_endtag(self, tag):
        self.a = 0

# instantiate the parser and fed it some HTML
parser = MyHTMLParser()
parser.feed('''
<div class="menu-item"> 
      <a class="menu-link" href="/dashboard/apple"> C-apple</a>
</div>
<div class="menu-item"> 
      <a class="menu-link" href="/dashboard/bench"> C-bench</a>
</div>
''')

你运行它你会得到输出

name: apple
title:  C-apple
name: bench
title:  C-bench

【讨论】:

  • 我实际上希望将这些变量作为元组从 python 文件提供给 html,我实际上正在寻找类似&lt;div class="menu-item"&gt; {% for name, project in dashboard_data %} &lt;ul&gt; &lt;li&gt;&lt;a href="/dashboard/" + {project}&gt;{name}&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; {% endfor %} &lt;/div&gt;
【解决方案2】:

感谢大家的帮助,这解决了我的问题

{%for name, title in tuples:%}
   <div class="menu-item">
      <a class="menu-link" href="/dashboard/{{title}}">{{name}}</a>
   </div>
{%endfor%}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 2019-02-19
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多