一个微信公众号文章聚合网站,可定制,用 django 撸的,极爽 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
pango
V2EX    分享创造

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

  •  5
     
  •   pango 2015-12-08 10:24:12 +08:00 10651 次点击
    这是一个创建于 3597 天前的主题,其中的信息可能已经有所发展或是发生改变。
    花了两个周末,做了个微信公众号文章聚合网站: 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
        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     Solana     1058 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 18:22 PVG 02:22 LAX 11:22 JFK 14:22
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86