V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lifanxi  ›  全部回复第 63 页 / 共 63 页
回复总数  1255
1 ... 54  55  56  57  58  59  60  61  62  63  
2012-02-11 23:59:06 +08:00
回复了 gujiaxi 创建的主题 Linux 你觉得哪个Linux发行版的Logo最好看呢?
虽然我用Debian,但我觉得Debian的LOGO是主流发行版中比较丑的一个。
2012-02-10 22:23:18 +08:00
回复了 kshatriya 创建的主题 Linode 提问,关于linode信用卡绑定
可以换的,我换过。直接输入新的姓名、卡号、有效期和CVV就可以了。
2012-02-09 23:40:15 +08:00
回复了 liuhang0077 创建的主题 分享发现 速度很快而且免费的CDN加速服务!!
53177944425 已用
谢谢
Android上Google Task同步的各种不爽(GTask也是我试过的同步App中最好的一个,但还是不太爽)最终导致我放弃了它,改用doit.im了,感觉不错,iOS也有支持。
@iray1991
1. 我也不知道,我不用Instapaper,注册了扔了几个页面进去抓了下好像没问题。抓到的文章应该跟http://www.instapaper.com/u这个页面上显示出来的文章数一样,与RSS无关。
2.我试了User,Name,PIN和Google密码的各种组合,好像都不成功。我也不知道该怎么办了...这个网站是用Google的OAuth的,不知道如果做Basic Auth时应该用什么信息做验证。

PS.
1. title = 'Full Feed Via Google Reader 2'
把这个改了就行
2. 这个完全跟你访问Google以及RSS源中的网站的速度有关,跟软件无关。goagent不快的话你是可以考虑换vpn试试,反正只要你总体的网速越快越好。正常情况下,DNS在这个过程中对速度的影响应该不会占到主导因素。
2012-02-06 15:30:19 +08:00
回复了 sunny222 创建的主题 问与答 大家知道杭州有哪些比较好的互联网创业公司或者网站啊~?
Bambook上用的TTS好像是迅飞的方案吧。我觉得不能算非常不错,但好像也没有更好的了。
@iray1991

如果feed的URL中有“?”的话,要替换成%3F。
> rssFeeds = ['http://www.shu0.net/%3Ffeed=rss2']

用https确实可以解决一部分墙的问题,不过在这个使用场景下没有太大的用处。因为calibre在抓RSS时,是忽略RSS中嵌入的正文的,它是直接跟据RSS中的link去原始网站抓页面内容的,所以那里的link如果被墙,那就还是抓不下来。我一直想改个recipe直接采集RSS的正文,不过还没搞。另外,Google本身的https访问也并不是非常稳定的。所以,还是用VPN或代理比较靠谱。
代码帖过来缩进都没有了...请从下面的地址重新获取代码:
http://www.freemindworld.com/tmp/fullfeed.txt
改了一个Recepie,可以通过Google Reader下载所有的历史文章。

先修改下面代码中的rssFeeds=['http://www.freemindworld.com/blog/feed.rss']'中的RSS地址,改成你想要的。如果有多个,可以用引号逗号隔开。比如:

rssFeeds=['http://www.luanxiang.org/blog/feed','http://www.write.org.cn/feed']

需要的话可以改一下max_articles_per_feed和oldest_article值,也许现在的默认值太大,会抓到太多的文章。

把改好的代码直接贴到自定义订阅清单的高级模式中即可。

在下载前,还要在"定期新闻下载"对话框中该订阅清单的"日程表"中输入你的Google帐号和密码。

然后就可以点“立即下载”按钮了。

注意,用这个订阅清单(包括别的所有needs_subscription = True的订阅清单)时,在下载任务的日志中会明文输出你输入的帐户和密码,所以如果要把日志往外帖的时候,注意把这些敏感信息清除掉。


import urllib, re, mechanize
from calibre.web.feeds.recipes import BasicNewsRecipe
from calibre import __appname__

class FullFeedViaGoogleReader(BasicNewsRecipe):
title = 'Full Feed Via Google Reader'
description = 'Fetches full feed articles from Google Reader'
needs_subscription = True
__author__ = 'davec, rollercoaster, Starson17, lifanxi'
base_url = 'https://www.google.com/reader/atom/feed/'
oldest_article = 10000
max_articles_per_feed = 10000
use_embedded_content = True

def get_browser(self):
br = BasicNewsRecipe.get_browser(self)
if self.username is not None and self.password is not None:
request = urllib.urlencode([('Email', self.username), ('Passwd', self.password),
('service', 'reader'), ('accountType', 'HOSTED_OR_GOOGLE'), ('source', __appname__)])
response = br.open('https://www.google.com/accounts/ClientLogin', request)
auth = re.search('Auth=(\S*)', response.read()).group(1)
cookies = mechanize.CookieJar()
br = mechanize.build_opener(mechanize.HTTPCookieProcessor(cookies))
br.addheaders = [('Authorization', 'GoogleLogin auth='+auth)]
return br

def get_feeds(self):
rssFeeds = ['http://www.freemindworld.com/blog/feed.rss']
feeds = [ self.base_url + f + ('?n=%d' % self.max_articles_per_feed) for f in rssFeeds ]
return feeds
@iray1991
豆瓣插件元信息下载插件不是老早就有了么?calibre安装时选中文界面时会自动启用。也可以在首选项->插件中手工启用。
@iray1991
每个网站的RSS输出量都是非常有限的,一般就限在几十条的量级,这个输出量是网站方控制的。calibre如果直接抓网站的RSS的话,就最多只能抓到这么多。

如果某个网站的RSS在Google Reader中被某个人订阅过,那Google Reader的保存这个RSS所有的历史记录,即使网站实际输出的RSS中已经去掉了过期的内容,这些内容仍然会在Google Reader中保留。

所以如果你真要抓全,那就不能从原始网站的RSS去抓,可以考虑通过Google Reader代理一层。这个好像没有办法直接实现,不过应该可以通过修改calibre中的Google Reader新闻抓取清单来实现。我有空可以试试看。
http://www.luanxiang.org/blog/feed 这个是墙外的,会跳转到被墙的feedburner上,所以很可能抓取不成功。
http://www.write.org.cn/feed 访问有时候不流畅,会出错。如果流畅的话是可以的,改oldest_article明显是有效果的。
http://www.zhihu.com/rss 上内容比较新,所以默认就可以抓全。把参数再改大也没有用,还是抓这么多。请注意Kovid给你回复中说的:calibre can fetch only as many articles as are present in the feed iteself. 如果RSS本身没有足够老的输出,你再改oldest_article也没有用。
我曾经过试过你说的直接改oldest_article和max_articles_per_feed的方法,是可以达到期望的结果的。今天试了一下也没有能重现你的问题。

你能描述一下你所遇到的“Error”是什么吗?

另外,在用calibre新闻抓取功能时,要注意是不是受到了墙的干扰,尤其是抓国外的一些Feed或Google Reader时。
1 ... 54  55  56  57  58  59  60  61  62  63  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2747 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 02:06 · PVG 10:06 · LAX 18:06 · JFK 21:06
Developed with CodeLauncher
♥ Do have faith in what you're doing.