好久没写程序了,话说自从决定进审协后,感觉学了这么长时间的coding算是有点浪费。找工作的时候挺想去做编程的,但由于种种原因还是签了家乡的单位。如果家乡的IT行业能稍微好一点,我就会毫不犹豫地去写代码啦。
废话少说。写了一个python脚本来看知乎每日精选,不过在命令行下挺不方便的,现在极想找一个CLI框架,像使用telnet那样方便地在命令行里跳转。
下面是截图:
一开始没有使用BeautifulSoup处理文章,导致没有换行,可读性特别差,用了bs后可读性好多了。
上代码:
#! /usr/bin/python
# coding = utf-8
import feedparser
from bs4 import BeautifulSoup
# encode, change to your env encoding
# usually 'my_encode' in linux, and 'gbk' in Windows
my_encode = 'gbk'
try:
feed = feedparser.parse('http://www.zhihu.com/rss')
except:
print "Conencting to zhihu.com error. Exiting..."
# print zhihu info
print feed.feed.title.encode(my_encode)
print feed.feed.subtitle.encode(my_encode)
print '**********************************************'
def print_list():
# answer number
i = 0
for item in feed.entries:
print("%s\t%s\t%s\t%s\n" %("No.", "Question", "Replier", "Time"))
print("%d\t%s\t%s\t%s\n" %(i, \
item.title.encode(my_encode), \
item.author.encode(my_encode), \
item.published.encode(my_encode)))
i = i + 1
# user interacting
while(1):
print_list()
an = raw_input("Please input the No. of answer to view detailed answer, input E to exit...")
if int(an) <= len(feed.entries):
print BeautifulSoup(feed.entries[int(an)].summary).prettify()
an2 = raw_input("Input R to return list, Input E to exit...")
if an2 == 'R' or an2 == 'r':
continue
elif an2 == 'E' or an2 == 'e':
exit(1)
elif an == 'E' or an == 'e':
print "Exiting now..."
exit(1)