花了3个晚上,把readability最新的1.7.1转成了python版的

2012-03-09 09:40:14 +08:00
 kingwkb
http://yanghao.org/tools/readability

github上找的的都是太老的版本0.4

其实算法这东西吧,看了别人的也就那样,但是要自己想出来确实不好弄,实现还是很容易的
9433 次点击
所在节点    Python
52 条回复
hewigovens
2012-03-09 09:57:00 +08:00
这也算porting吧,lz好效率
kingwkb
2012-03-09 10:37:06 +08:00
@hewigovens porting的意思是?
bitsmix
2012-03-09 10:49:22 +08:00
赞。

但是我想说的是, readability 是把当前网页的源码 post 到自己的服务器上,而不是象 LZ 这样在自己服务器上抓的。

不过无论如何,怒赞 LZ :)
kingwkb
2012-03-09 11:03:25 +08:00
@bitsmix 额,因为他有客户端可以这么做

我么,就是学习学习他的算法,获取任何一个网页的主要内容,这个本身就很酷吧
bitsmix
2012-03-09 11:05:18 +08:00
@kingwkb 是很 cool ,我只是提供一下信息, FYI 一下 嘿。。
sobigfish
2012-03-09 11:54:27 +08:00
试了试cocoachina的新闻页 和 一些blog
很准
在找h1之类的么?
kingwkb
2012-03-09 12:17:15 +08:00
@sobigfish 不是找H1,大概就是html标签统计权重加减的方法
mywaiting
2012-03-09 12:33:33 +08:00
@bitsmix InstaPaper的实现才是使用JavaScript把当前网页在浏览器中的DOM发送到Instapaper的服务器的;Readablity的实现则是用户提交一个网址,然后Readability使用自己的爬虫去抓取网页的内容的。

测试方法:在一个需要登录的网站,使用其中的内容(简单点就是找一篇淫淫网的日志吧),Instapaper可以提交内容,而Readability则是无法得到页面。

仅供参考。
bitsmix
2012-03-09 13:59:50 +08:00
@mywaiting readability 的 safari 扩展中的 "Read Now(`)" 是把 dom post出去的。

Read Later(Shift-`) 是提交的 url.

Instapaper 我没看。

我想 Read Now 提交 dom 是为了更快的拿到生成好的便于阅读的文本吧。算一个同步操作,用户在这边等待。

但是单从提交->返回的这个时间来看, 提交 url 肯定会比 提交 dom 短的多。

反正你也是 later 才读,那解析内容的问题就交给服务器异步做好了。
mywaiting
2012-03-09 14:27:47 +08:00
@bitsmix 这个....那好吧....我调试过的就是Readability的Read Later的说

刚才没有说得很清楚啊!

呵呵!谢谢提醒!

Ps:顺便问LZ的Port打算开源么?我想用一下你的实现.....谢谢!
lala
2012-03-09 15:02:48 +08:00
正文里面的图片能够显示出来吗?试了一下,好像没有显示
kingwkb
2012-03-09 15:23:29 +08:00
@mywaiting @lala 如果是全路径的话可以,我没有做补全路径,等等做上

通过大家的使用,刚才发现有视频的时候会有异常,现在解决了

发现异常的地址 http://yanghao.org/tools/readability?url=http%3A%2F%2Fcdc.tencent.com%2F%3Fp%3D5311

不知道这个是哪位朋友使用的
kingwkb
2012-03-09 15:51:02 +08:00
@lala 修复图片地址已经完成,欢迎测试,有问题可以反馈给我
sohoer
2012-03-09 16:36:33 +08:00
@kingwkb 楼主搞垂直搜索吗?你的s. GG收录几W,看了都是CSDN的数据
kingwkb
2012-03-09 16:42:32 +08:00
@sohoer 那个s只是一个玩具,但是花了一个周末的时间做好之后就一直没管过他了,几年前研究过搜索,但工作一直跟这个没关系,所有很难坚持,这个牵扯的东西太多
mywaiting
2012-03-09 17:36:22 +08:00
Ps:顺便问LZ的Python实现打算开源么?我想用一下你的实现.....谢谢!
mywaiting
2012-03-09 17:36:38 +08:00
Ps:顺便问LZ的Python实现打算开源么?我想用一下你的实现.....谢谢!
ywjno
2012-03-09 18:25:17 +08:00
出错了,'ascii' codec can't encode characters in position 4-17: ordinal not in range(128)
kingwkb
2012-03-09 19:18:48 +08:00
@mywaiting 这2天我捣鼓到github上面

@ywjno 给出url吧,这个情况貌似编码问题,应该是chardet编码检测错误导致的,看来还的先检查http header和html header,没有声明编码的情况下再用chardet
kojp
2012-03-09 19:25:04 +08:00
怒赞!

----我以前用PHP实现过,呵呵。入库什么的,效率有点低,也可能是服务器配置问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/29123

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX