Python和科学计算认证群组  - 讨论区

标题:自制RSS订制的问题!

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哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号