1

我一直在玩 Python 和 geektools,在我整理代码和使用循环之前,我已经让脚本工作了。

现在它不会显示超出该lalala方法的任何内容。

我正在使用 geektools 3.0.2 在 mac 10.8.1 上工作。

#!/usr/bin/python

#Simple script that downloads runescape adventures log
#and outputs it to console
# Ashley Hughes 16/SEP/2012

import sys
import urllib2 #For HTTP access
from time import localtime, strftime #Time data functions
from xml.dom.minidom import parseString #XML parser

def lalala(n):
    i = 0
    while(i <= n):
        xmlTag = dom.getElementsByTagName('description')[i].toxml()
        xmlData = xmlTag.replace('<description>','').replace('</description>','').replace('\t','').replace('\n','')
        #print (str(i) + ": " + xmlData)
        print(xmlData)
        i = i + 1

try:
    f = urllib2.urlopen("http://services.runescape.com/m=adventurers-log/rssfeed?searchName=SIG%A0ZerO")
    #f = urllib.urlopen("http://www.runescape.com/")
except Exception, e:
    print "Could not connect"
    sys.exit(1)
s = f.read()
f.close()

dom = parseString(s)

print strftime("%a, %d %b %Y %H:%M:%S", localtime())
print "Working"
lalala(6)
print "Still working"
sys.exit(0)
4

2 回答 2

1

当您的代码“打印”到 GeekTool 时,您会遇到 unicode-ascii 问题。改变:

xmlTag = dom.getElementsByTagName('description')[i].toxml()

对此:

xmlTag = dom.getElementsByTagName('description')[i].toxml().encode('ascii', 'ignore')

在带有 GeekTool 3.0.3 的 mac 10.8.1 中这对我来说很好

看看http://docs.python.org/howto/unicode.html

于 2012-09-21T10:43:55.850 回答
0

lalala方法可以进一步整理:

def lalala(n):
    i = 0
    while(i <= n):
        xmlTag = dom.getElementsByTagName('description')[i].toxml()
        xmlData = xmlTag.replace('<description>','').replace('</description>','').replace('\t','').replace('\n','')
        #print (str(i) + ": " + xmlData)
        print(xmlData)
        i = i + 1

可以变成

def lalala(dom):
    for tag in dom.getElementsByTagName('description'):
        xmlTag = tag.toxml()
        xmlData = xmlTag.replace('<description>','').replace('</description>','').replace('\t','').replace('\n','')
        print(xmlData)

然后你可以用

lalala(dom)

而不是lalala(6).

不过,老实说,在 XML 上进行文本标记替换可能是一个糟糕的计划。

于 2012-09-21T11:11:44.787 回答