作者cerebellum (ymca)
看板Python
標題[問題] python程式問題請求幫忙
時間Thu May 12 23:26:45 2016
我沒有學過python 只有使用matlab的經驗
不過我有在用一個python寫成的程式幫我自動生成rss的全文
我發現了一個bug 不過這個程式似乎已經沒有人在維護了
所以想請大家幫忙做一個修改
當程式生成全文rss的時候
會擷取一部分原本的rss 內容(stripped) 當成discription
下面是擷取stripped的程式碼
local_entry['stripped'] = ''.join(BeautifulSoup(local_entry['content'],
convertEntities = BeautifulSoup.HTML_ENTITIES).findAll(text = True))[:200]
下面是使用stripped的程式碼
<mbp:meta name="description">{{ escape(item['stripped']) }}</mbp:meta>
但是在極少數的情況下 這個stripped會是空的
這時候後面的程式碼就會有錯誤
如果我把'stripped'改成'title' 也就是rss的標題 則不會出現錯誤
我在想可以加入一個判斷式 如果stripped為空時(沒有文字)
則使用title來當description
請高手們幫忙了! 謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 139.52.106.183
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1463066808.A.7F8.html
1F:→ yeh6: if 'stripped' in local_entry: local_entry['stripped']=.. 05/13 02:06
2F:→ yeh6: else: local_entry['title']=... 05/13 02:06
對不起 可能是我沒有表達好 後面的程式碼會有錯誤不是指
<mbp:meta name="description">{{ escape(item['stripped']) }}</mbp:meta>
會出錯 而是在其他部分的程式碼要求
<mbp:meta name="description"> 與 </mbp:meta> 中間一定要有東西的時候會出錯
所以如果我把
<mbp:meta name="description">{{ escape(item['stripped']) }}</mbp:meta>
改成
<mbp:meta name="description">{{ escape(item['title']) }}</mbp:meta>
就不會出錯 因為'title'一定會有東西
所以我想要加的判斷式比較像是
if 'stripped'為空(沒有東西)
<mbp:meta name="description">{{ escape(item['title']) }}</mbp:meta>
else 'stripped'有內容
<mbp:meta name="description">{{ escape(item['stripped']) }}</mbp:meta>
感謝幫忙!
※ 編輯: cerebellum (139.52.106.183), 05/13/2016 03:57:12
※ 編輯: cerebellum (139.52.106.183), 05/13/2016 03:57:42
3F:→ uranusjr: 這看起來是 Jinja2 template? 試試這樣 05/13 08:37
4F:→ uranusjr: escape(item['stripped']) or escape(item['title']) 05/13 08:42
5F:→ cerebellum: 感謝幫忙 初步測試是成功的! 有問題會再來回報! 05/14 03:14