2011年01月06日 星期四 12:54
# -*- coding:utf-8 -*-
import feedparser,re
url = 'http://feeds.feedsky.com/csdn.net/ccat'
data = feedparser.parse(url)
x = data.entries[0].summary
pattern = '<.+?>'
x = re.sub(pattern,'',x)
print x
f = open('/home/salamander/Documents/RSS/rss.txt','w')
f.write(x)
f.close
运行报错:
Traceback (most recent call last):
File "/home/salamander/.idlerc/rss_MarchLIu.py", line 12, in <module>
f.write(x)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
这个ASCII应该怎么弄阿?
2011年01月06日 星期四 13:32
试试f.write(x.encode("utf8"))
2011年01月06日 星期四 13:33
强制utf8编码
f.write(x.encode('utf-8'))
2011年01月07日 星期五 12:50
谢谢楼上两位!
现有两个问题:
1.输出的是部分文章,我想在下面添加文章地址该怎么做?
2.能写成PDF格式么?或者别的可以直接打开网址的格式?
2011年01月08日 星期六 16:14
1. 把地址写进文件就可以了
f.write(url)
2. 输出成HTML比较方便吧。
2011年01月08日 星期六 22:06
张老师你好!
我用的feedparser是从RSS地址里面读取数据,但是整段的文章是在另一个地址阿!
如:http://feeds.feedsky.com/csdn.net/ccat(rss)
http://blog.csdn.net/ccat/archive/2011/01/05/6118849.aspx(实际地址)
应该如何做链接呢?
还有,HTML这方面我不熟悉,以前看的《learing python》里面好像也没有类似的东西,能麻烦张老师推荐一本进阶的书籍么?
2011年01月08日 星期六 22:22
链接,标题等信息都保存在data.entries[0]中,用print data.entries[0].keys()就可以看到你能访问的所有属性了。
例如链接为:data.entries[0].link
所以,你可以.write(data.entries[0].link)保存链接。
HTML就是一种文本格式而已,你不需要把summary中HTML的标签删除掉。把数据写到rss.html文件中,并添加HTML所需的一些标签即可。
例如:
f.write('<html><body>')
f.write(data.entries[0].summary.encode("utf8"))
f.write('<a href="%s">link</a>' % data.entries[0].link)
f.write('</body></html>')
Zeuux © 2024
京ICP备05028076号