2010-08-03 33 views
1
#!/usr/bin/python 
# -*- coding: utf-8 -*- 
import sys 
import os 
import cgi 
import string 
import feedparser 

count = 0 
print "Content-Type: text/html\n\n" 
print """<PRE><B>WORK MAINTENANCE/B></PRE>""" 


d = feedparser.parse("http://www.hep.hr/ods/rss/radovi.aspx?dp=zagreb") 


for opis in d: 
    try: 
      print """<B>Place/Time:</B> %s<br>""" % d.entries[count].title 
      print """<B>Streets:</B> %s<br>""" % d.entries[count].description 
      print """<B>Published:</B> %s<br>""" % d.entries[count].date 
      print "<br>" 
      count+= 1 
    except: 
     pass 

我有一個CGI和paython腳本的問題。在終端腳本下運行得很好,除了「IndexError:列表索引超出範圍」,並且我爲此付了通行證。但是當我通過CGI運行腳本時,我只能從d.entries [count] .title重複9次獲得WORK MAINTENANCE行和第一行?所以令人困惑...Python/feedparser腳本將不會顯示在CGI /字符編碼上

另外我怎樣才能在Cropa(巴爾幹)字母的feedparser中設置支持; č,ć,š,ž,đ? # - - 編碼:utf-8 - - 無法正常工作,我正在運行Ubuntu服務器。

非常感謝您的幫助。

問候。

回答

0
for opis in d: 
    try: 
      print """<B>Place/Time:</B> %s<br>""" % d.entries[count].title 

您在輸出中沒有使用'opis'。

嘗試這樣:

for entry in d.entries: 
    try: 
     print """<B>Place/Time:</B> %s<br>""" % entry.title 
     .... 
+0

我已經傷心把你,但它仍然無法正常工作,腳本單獨工作正常(沒有錯誤與修改:)),但通過CGI它的顯示器使用時,只有第一行? 有什麼建議嗎? – user409239 2010-08-03 05:18:57

+0

Oke我認爲我發現了這個問題,CGI不能打印我的克羅地亞字母ć,č,š,ž,đ,這就是腳本打破的原因。 如何在python/ubuntu中設置對這些字母的支持? – user409239 2010-08-03 05:31:48

+0

我認爲問題是:'# - * - coding:utf-8 - * - '只允許您在程序源代碼中使用UTF-8:http://evanjones.ca/python-utf8.html如果您想要爲了輸出_ UTF-8,你需要告訴網絡瀏覽器預期UTF-8,也許使用一個''標籤。 (_Maybe_你可以在你現有的Content-Type:text/html頭文件中添加「Charset:UTF-8」頭文件,我不確定。) – sarnold 2010-08-03 23:37:07

0

奧凱了另一個問題,那我manualy進入會顯示在CGI,但RSS網頁難道不文本。所以,你需要你寫之前編碼:

# -*- coding: utf-8 -*- 
import sys, os, string 
import cgi 
import feedparser 
import codecs 

d = blablablabla 

print "Content-Type: text/html; charset=utf-8\n\n" 
print 

for entry in d.entries: 
    print """%s""" % entry.title.encode('utf-8')