Скрипт Python / feedparser не будет отображаться при CGI / кодировании символов - PullRequest
1 голос
/ 03 августа 2010
#!/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 """WORK MAINTENANCE/B>
""» d = feedparser.parse ("http://www.hep.hr/ods/rss/radovi.aspx?dp=zagreb") для описания в д: пытаться: print "" " Место / время: % s
" ""% d.entries [count] .title print "" " Улицы: % s
" ""% d.entries [count] .description print "" " Опубликовано: % s
" ""% d.entries [count] .date печать "
" считать + = 1 Кроме: проходить

У меня проблема с CGI и скриптом Paython. Под терминалом скрипт работает просто отлично, за исключением «IndexError: list index out of range», и я поставил для этого пропуск. Но когда я запускаю скрипт через CGI, я получаю только строку WORK MAINTENANCE и первую строку из d.entries [count] .title, повторенную 9 раз? Так запутанно ...

Также, как я могу настроить поддержку в feedparser для хорватских (балканских) букв; č, ç, š, ž, đ? # - - кодировка: utf-8 - - не работает, и я работаю на сервере Ubuntu.

Заранее спасибо за помощь.

Привет.

Ответы [ 2 ]

0 голосов
/ 06 августа 2010

У Оке была еще одна проблема, текст, который я вводил вручную, показывался бы на 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')
0 голосов
/ 03 августа 2010
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
        ....
...