V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
pango
V2EX  ›  分享创造

一个微信公众号文章聚合网站,可定制,用 django 撸的,极爽

  •  5
     
  •   pango · 2015-12-08 10:24:12 +08:00 · 9344 次点击
    这是一个创建于 2446 天前的主题,其中的信息可能已经有所发展或是发生改变。
    花了两个周末,做了个微信公众号文章聚合网站: http://www.weiheji.net

    其实已经有很多类似的网站了,不过我还是重新造了个轮子,因为可以按照自己的心意添加一些想要的功能:

    比如,可以自定义公众号,把公众号添加为关注后,就可以在“我的关注”里专心阅读所有关注公众号的更新。
    比如,可以 RSS 订阅。
    比如,网页是 responsive 的。
    。。。
    只要我能想到的功能,我就能做出来满足自己,这是我作为一个码农的小小骄傲。

    截图:


    在手机上的效果:


    网站是用 django 撸的,整个撸的过程极爽。 django 的 view,model,template 用起来有多顺手自不必多说,一行配置完成缓存功能、半分钟切换数据库或者缓存实现、自动生成后台管理系统、一分钟完成 RSS 功能。。。,更不必说各种第三方实现的 middleware 拿来就能用,比如会员管理、文章标签、分页。。。,所有网站需要的功能都有人帮你实现了,而且还是免费的,你只需要花一点点时间配置一下,真是 django 在手,天下我有。
    人生苦短,我用 django 。

    抓取部分用到神器 pyspider , https://github.com/binux/pyspider ,个人感觉一般的抓取, pyspider 已经完全可以替代掉 scrapy 了。作者很巧妙地通过 message queue 将抓取、网页数据抽取、抓取结果处理分开成几个部分,可高度自己定制,抓取效率非常高,推荐使用。

    最后,请点击: http://www.weiheji.net ,请尽情吐槽。
    第 1 条附言  ·  2015-12-08 18:39:19 +08:00
    忘了说了,不是所有的 RSS 都是全文的,因为微信公众号的文章里面的图片地址不是常规的,要通过 python 转换一下,蛮耗 CPU 的,所以没法全部用全文输出。
    想要全文 RSS 的,可以先关注一些公众号,在“我的关注”里面输出的 rss 是全文的。
    42 条回复    2016-04-25 16:47:24 +08:00
    lawder
        1
    lawder  
       2015-12-08 10:49:27 +08:00
    抓的搜狗搜索吗?
    50vip
        2
    50vip  
       2015-12-08 10:56:19 +08:00
    很厉害。。。
    XianZaiZhuCe
        3
    XianZaiZhuCe  
       2015-12-08 11:05:12 +08:00
    那干嘛不用 wordpress 还自己撸什么
    sinux
        4
    sinux  
       2015-12-08 11:12:38 +08:00
    代码呢?
    1987618girl
        5
    1987618girl  
       2015-12-08 11:26:57 +08:00
    代码呢,求 git
    pango
        6
    pango  
    OP
       2015-12-08 11:49:51 +08:00
    @lawder 部分数据来自于搜狗搜索
    pango
        7
    pango  
    OP
       2015-12-08 11:50:34 +08:00
    @XianZaiZhuCe 自己撸可以撸出成就感
    pango
        8
    pango  
    OP
       2015-12-08 11:52:22 +08:00
    @1987618girl 无 git 。
    @sinux 你是说抓取部分还是 django 部分?
    Moker
        9
    Moker  
       2015-12-08 12:47:39 +08:00
    以前也通过搜狗抓过 后来被封了 就别搞了
    qmqy
        10
    qmqy  
       2015-12-08 12:50:51 +08:00
    请问楼主如何处理搜狗反爬虫的策略的?
    听说搜狗这方面做了超多限制,各种黑科技。
    pango
        11
    pango  
    OP
       2015-12-08 13:28:48 +08:00
    @Moker 是挺烦
    Jackhuang
        12
    Jackhuang  
       2015-12-08 14:19:32 +08:00 via iPhone
    抓搜狗有两个问题,第一是搜狗老是增加难度,第二是不全,而现在在网页端可以分析 xml ,公众可以很全,但是问题是中间有一步需要人工转发到网页端提取 xml 。请问楼主怎么搞定的?前段时间想法就是先人工把公众号的历史搞定,之后更新信息从搜狗抓,但是人工这一步太烦了,搜狗现在用 phtomjs 模拟浏览器, url 居然是 sogou ,原来是直接 tx 的 url 了,意味着还要一步,假期写了一半的爬虫就此放弃了。。。 @pango
    daoluan
        13
    daoluan  
       2015-12-08 15:29:15 +08:00
    半分钟切换数据库或者缓存实现
    这句话是什么意思?
    costimes
        14
    costimes  
       2015-12-08 15:47:16 +08:00
    RSS 非全文输出…………
    sadara
        15
    sadara  
       2015-12-08 16:13:20 +08:00
    求代码
    dong3580
        16
    dong3580  
       2015-12-08 16:50:42 +08:00   ❤️ 1
    @qmqy
    先获取列表,保存下 cookie ,然后带 cookie 请求公众号所在的列表地址,
    再用该 cookie 去请求某页的列表,
    继续用该 cookie 请求列表中某篇文章的内容。
    建议用浏览器抓抓,看看原理就懂了,很好理解的。
    lazarus
        17
    lazarus  
       2015-12-08 17:00:21 +08:00
    code 没放出来吗?
    pango
        18
    pango  
    OP
       2015-12-08 17:12:05 +08:00
    @Jackhuang 我也是人工,但是数量不多,结合自己写个小程序辅助一下,所以还好。另外还支持直接提交文章,提交的文章只要把 biz 提取出来就可以自动分类。我没涉及到 xml 。
    honeycomb
        19
    honeycomb  
       2015-12-08 17:13:17 +08:00 via Android
    楼主强力!
    pango
        20
    pango  
    OP
       2015-12-08 17:14:18 +08:00
    @daoluan 就是把 mysql 换成其他数据库如 sqlite ,把 memcache 换成 redis 什么的
    pango
        21
    pango  
    OP
       2015-12-08 17:16:22 +08:00
    @dong3580 最好用 phantomjs 获取 cookie ,直接 request.get 的话好像拿不到完整的 cookie
    pango
        22
    pango  
    OP
       2015-12-08 17:18:41 +08:00
    @costimes 先关注一些公众号,在“我的关注”里面输出的 rss 是全文的。
    因为微信公众号的文章里面的图片地址不是常规的,要通过 python 转换一下,蛮耗 CPU 的,所以没法全部用全文输出。
    dong3580
        23
    dong3580  
       2015-12-08 17:21:15 +08:00
    @pango
    要带域,基本上用 Fiddler 都能调试出来 :)
    pango
        24
    pango  
    OP
       2015-12-08 18:40:21 +08:00
    @dong3580 是的。
    JiaFeiX
        25
    JiaFeiX  
       2015-12-08 23:34:20 +08:00
    求代码
    jkm
        26
    jkm  
       2015-12-09 10:01:54 +08:00
    我也自己做过一个网站, 和大家分享一下:

    去年在国外看到一个很有意思的趣味和搞笑类的视频网站 break.com, 于是仿照它的结构和界面用 CoolPHP 做了一个恶搞类的视频网站(上线地址: http://www.iprank.tv ,因为内嵌了 youtube 视频,需要翻墙才能看到完整的效果)。整个网站从原型制作、 UI 设计、文字策划、前端开发、后台开发以及运营工作等全部工作由我一人兼职完成。

    整个网站使用响应式设计,支持 PC,手机和平板等多种分辨率显示设备,网站使用如下技术栈:
    PHP 开发框架 - CoolPHP
    前段框架 - Bootstrap, 使用 Less 来设计调试页面样式,正式上线编译成 css
    代码压缩 - Minify 对 js/css 进行文字压缩
    第三方 SDK - Google Adsense, Google Analytics, Facebook SDK, Twitter SDK...

    网站测试地址:
    前台界面,支持注册登陆、浏览以及发布视频: http://www.iprank.tv
    后台界面,支持 YouTube 视频抓取,内容编辑等: http://www.iprank.tv/admin

    测试账号: [email protected]/123456
    pango
        27
    pango  
    OP
       2015-12-09 11:01:28 +08:00
    @jkm 网站不错。不过也是新造一个轮子。
    jkm
        28
    jkm  
       2015-12-09 12:17:14 +08:00
    @pango 有现成的轮子嚒?
    pango
        29
    pango  
    OP
       2015-12-09 12:46:28 +08:00
    @jkm 有,很多人做英文采集站都是以图片、软件、视频开始的,因为不涉及到改写,难度较低,所以这样的站很多,也都能分到一点 google 的流量
    mycccc
        30
    mycccc  
       2015-12-09 14:36:28 +08:00
    发现一些自己想看的上面没有
    可以提供一个提交公众号的入口么?
    pango
        31
    pango  
    OP
       2015-12-09 17:10:32 +08:00
    @mycccc 好的,等周末有空我来加入这个提交公众号的功能。
    Aquamarine
        32
    Aquamarine  
       2016-01-04 20:39:12 +08:00
    太感谢楼主了,正在找类似的网站,但愿能存活久一些。
    另外可以支持知乎专栏或者日报吗?
    Aquamarine
        33
    Aquamarine  
       2016-01-06 09:43:18 +08:00
    感觉奇怪,发现大家要手动刷新 The Old Reader 才能获取到。
    pango
        34
    pango  
    OP
       2016-01-06 12:04:03 +08:00
    @Aquamarine 目前广告收入 2 块,正好摊平服务器费用,所以,我想会存活下去,吧。。。
    pango
        35
    pango  
    OP
       2016-01-06 12:04:16 +08:00
    @Aquamarine 什么意思?
    Aquamarine
        36
    Aquamarine  
       2016-01-07 19:06:34 +08:00
    @pango 我指的倒不是经济上的问题,而是会被官方封杀,此类之前的几个不是都荒废了么。
    Aquamarine
        37
    Aquamarine  
       2016-01-07 19:07:56 +08:00
    @pango 就是说无法主动推送到阅读器中,要手动刷新才能有新的未读条目。但是我第二次发现能够接收到了,我再观察看看,有情况再反馈。
    pango
        38
    pango  
    OP
       2016-01-09 08:43:52 +08:00
    @Aquamarine 感谢反馈,不过 weiheji.net 提供的是普通的 Rss ,应该不是导致出现你这个情况的原因。
    Aquamarine
        39
    Aquamarine  
       2016-01-09 13:57:57 +08:00
    @pango 今天观察结果,能够自动收到订阅内容。不过有时差,截止发回复时点,我这里(手动刷新无更新)最新的是《袁征:漫画大师丁聪之二丨从批判别人到自己挨整》,显示 15 小时前,而你的网站最新是《念经时念亡人名字回向非常重要》,显示 17 分钟前,这个是 RSS 阅读器的问题吧?
    jiaots
        40
    jiaots  
       2016-02-06 13:24:55 +08:00
    @pango 哥们对你这个很感兴趣。方便加我 q
    85 82 7 0 9 00
    谢谢了
    deny
        41
    deny  
       2016-04-25 16:47:12 +08:00
    @pango weiheji 还继续运营吗?加 QQ 聊聊: 3296821364
    deny
        42
    deny  
       2016-04-25 16:47:24 +08:00
    @jiaots 楼主还联系你了啊?
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1888 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 16:57 · PVG 00:57 · LAX 09:57 · JFK 12:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.