我在python中学习集体智慧编程。当我试图重复pydelicious相关代码时,我发现pydelicious.get_popular('programming')
没有返回任何有效的URL。结果是{'extended': '', 'description': u'something went wrong', 'tags': '', 'url': '', 'user': '', 'dt': ''}
。所以你可以看到哪里应该是一些url是空的(''
),描述是something went wrong
。我使用从pydelicious
下载的sudo easy_install
使用setup.py
安装了google code
。我可以成功导入pydelicious
模块。我不确定是什么问题。
from pydelicious import get_popular,get_userposts,get_urlposts
def initializeUserDict(tag,count=5):
user_dict={}
# get the top count popular posts
for p1 in get_popular(tag=tag)[0:count]:
# find all users who posted this
print p1
for p2 in get_urlposts(p1['url']):
user=p2['user']
user_dict[user]={}
return user_dict
user_dict=initializeUserDict('programming')
print user_dict
答案 0 :(得分:2)
问题来自Delicious API本身: http://feeds.delicious.com/v2/rss/popular/starwars
查看API documentation,看起来不再支持此功能。但是,如果你测试最近的'标签,它也失败了。
我发了一封关于这个可能错误的电子邮件,让我们看看......
答案 1 :(得分:2)
您应该将__init__.py
修改为:
rss = http_request('http://feeds.delicious.com/v2/rss').read()
我再次看到资源代码。 也许这是错误的。因为如果您编辑代码,程序答案总是保持不变......我正在研究......
答案 2 :(得分:1)
来自d.hatena.ne.jp/seika_m/20150910:
我修复了2行“pydelicious.py”。
DLCS_RSS = 'http://del.icio.us/rss/'
到
DLCS_RSS = 'http://feeds.delicious.com/v2/rss/'
和
def get_popular(tag = ""):
return getrss(tag = tag, popular = 1)
到
def get_popular(tag = ""):
return getrss(tag = tag, popular = 0)
问题解决了。
事实上。为我工作。
答案 3 :(得分:0)
更改 init .py
替换
elif popular == 0 and tag != '':
# http://del.icio.us/rss/tag/apple
# http://del.icio.us/rss/tag/web2.0
url = DLCS_RSS + "tag/%s" % tag
elif popular == 1 and tag == '':
url = DLCS_RSS + 'popular/'
elif popular == 1 and tag != '':
url = DLCS_RSS + 'popular/%s' % tag
与
elif popular == 0 and tag != '':
# http://del.icio.us/rss/tag/apple
# http://del.icio.us/rss/tag/web2.0
url = DLCS_RSS + "%s" % tag
elif popular == 1 and tag == '':
url = DLCS_RSS + 'popular/'
elif popular == 1 and tag != '':
url = DLCS_RSS + '%s' % tag