推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
crayonyi
V2EX  ›  Python

开源公司内部的微信爬虫,寻求志同道合的人一起来改进

  •  5
     
  •   crayonyi · Sep 20, 2016 · 13641 views
    This topic created in 3698 days ago, the information mentioned may be changed or developed.

    一个爬取微信公众号文章的爬虫

    github: https://github.com/bowenpay/wechat-spider

    微信爬虫的由来

    我们是一家帮助中国 5000 万贫困人口与社会公益组织的对接的公司。

    我们通过国家和地方政府的“建档立卡”系统,获取到了一手的贫困户数据,目前有 100 万左右,总数为 5000 万,目前每个月都在增长。

    为了帮助这部分贫困户对接公益机构,我写了这个微信爬虫,从微信公众号发布的文章中上找出最新的公益项目。

    这种找项目的方式的可行性,我们还在试验中。

    起初,为了快速上线,本爬虫的代码是基于我的另一个 通用爬虫项目 开发的,还不是很完善,所以希望任何对本项目感兴趣的人联系我,与我一同改进这个项目。

    联系方式:在该 issue 下留言告诉我 点击去留言

    界面预览

    1 ) 要爬取的微信公众号列表

    2 ) 要爬取的文章关键字列表

    3 ) 已经爬取的微信文章

    4 ) 查看文章,并标记是否可用

    5 ) 控制爬取进程数

    使用到的技术和框架

    django mysql redis lxml selenium

    65 replies  •  2020-03-14 20:11:54 +08:00
    crayonyi
    crayonyi
    OP
    Sep 20, 2016
    1
    咨询下,现在获取微信文章的阅读数,都有哪些方法?
    em70
    em70
    Sep 20, 2016 via iPhone
    2
    公司专业做公益,这是一个悖论
    ibufu
    ibufu
    Sep 20, 2016
    3
    你应该去 py 社区吧。
    zhy0216
    zhy0216
    Sep 20, 2016
    4
    @ibufu v2 就是.... -_-|||
    shoaly
    shoaly
    Sep 20, 2016
    5
    @em70 公益不允许赚钱机构介入 也是中国公益发展不起来的原因.. 不赚钱的事 始终不长久. 赚钱不等于就不公益了
    Chyroc
    Chyroc
    Sep 20, 2016 via iPhone
    6
    @crayonyi https://github.com/Chyroc/WechatSogou
    这里面有过去阅读数的方法
    liangmishi
    liangmishi
    Sep 20, 2016 via Android
    7
    @ibufu 有其他好的 py 社区吗
    lxyyzm
    lxyyzm
    Sep 20, 2016 via Android
    8
    好贴必须顶
    yaotian
    yaotian
    Sep 20, 2016
    9
    sogo 反爬机制一直更新。。。
    vivagonna
    vivagonna
    Sep 20, 2016
    10
    还不太懂 python ,看起来不错, mark 一下
    crayonyi
    crayonyi
    OP
    Sep 20, 2016
    11
    @Chyroc 多谢 我看看
    likai
    likai
    Sep 20, 2016
    12
    @shoaly 中国公益发展不起来可和这个没关系..
    你们公司专门对接需要帮助的贫困户和公益组织.难道是像房屋中介一样收中介费?不然怎么养活公司?
    crayonyi
    crayonyi
    OP
    Sep 20, 2016❤️1
    13
    @yaotian 用了代理池、 Firefox+selenium ,模拟人工点击,所以一直都挺稳定的。除非搜狗微信的页面样式换了,需要重新更新一下爬取模板。
    crayonyi
    crayonyi
    OP
    Sep 20, 2016❤️1
    14
    @shoaly 我们有一家公益机构,一家公司。 公益的事情公益做,赚钱的事情公司做。
    lixuda
    lixuda
    Sep 20, 2016
    15
    不会出现验证码吗?
    wangchyz
    wangchyz
    Sep 20, 2016
    16
    用商业的手法做公益,不冲突
    cqcn1991
    cqcn1991
    Sep 20, 2016
    17
    非常支持!
    希望以后有机会用到,和提 PR
    lcc4376
    lcc4376
    Sep 20, 2016
    18
    幫頂
    em70
    em70
    Sep 20, 2016 via iPhone
    19
    @crayonyi 红十字会也是这样想的,所以不被人信任。公司的天职是赚钱,当公众利益与股东利益冲突时候,公司应该坚定选择后者,所以公益的事应该给非盈利组织去做,比如维基百科
    lxyyzm
    lxyyzm
    Sep 21, 2016 via Android
    20
    @em70 智商捉急啊,人都说了公司是赚钱的,只不过客户是公益组织而已
    PP
    PP
    Sep 21, 2016
    21
    @lxyyzm 尽管人无完人,可是如果您在 V 站活动时间足够长,那么一定会有机会读到他的许多言论,您将会发现他的才智还是很不错的。用“智商捉急”来评论他人很不礼貌,还请尊重他人!
    gladuo
    gladuo
    Sep 21, 2016
    22
    @PP hhh
    lichun
    lichun
    Sep 21, 2016 via iPhone❤️1
    23
    @lxyyzm 这不是写最小天气预报那 XX 嘛?还会喷别人?
    Lonely
    Lonely
    Sep 21, 2016 via iPhone❤️1
    24
    @lichun 这人就是个 sb ,不必理他
    lxyyzm
    lxyyzm
    Sep 21, 2016 via Android
    25
    @PP 至少在这个问题上智商显得有点捉急 o(∩_∩)o ,不过还是多谢您的善意提醒!@em70 ,如果有冒犯到 ,向您道歉!
    xi_lin
    xi_lin
    Sep 21, 2016 via iPhone
    26
    手动点赞
    PP
    PP
    Sep 21, 2016 via iPad
    27
    @lichun @Lonely Be nice, be kind.
    est
    est
    Sep 21, 2016
    28
    其实爬 sogou 的都是爬的「订阅号」,真正的「公众号」 比如 招商银行 好像都爬不到。
    crayonyi
    crayonyi
    OP
    Sep 21, 2016
    29
    @est 你说的是服务号吧 好像确实没有。 不过服务号定位不一样,侧重于服务,而非宣传。一个月只能发 4 篇文章,量本身也不大。暂时还没有去考虑。
    crayonyi
    crayonyi
    OP
    Sep 21, 2016
    30
    @lixuda 会的。所以用了代理池,而且代理服务器的 ip 是 3 分钟切换一次。
    crayonyi
    crayonyi
    OP
    Sep 21, 2016
    31
    @em70 公益行业是个互联网化程度很低的行业,也是效率较低的行业。 但这也正是我们的机会。 公益和商业是可以共赢的。公司如果考虑长远发展,不只顾眼前的利益,是能获取更大利益的。
    rebelboy2
    rebelboy2
    Sep 21, 2016
    32
    我给你说,爬这种数据都没法直接赚钱。
    要爬爬那种数据本身就能兑换价值的,比如 国际机票,国内机票
    这种投放到携程去哪平台,可以直接产生价值
    Kuo
    Kuo
    Sep 21, 2016
    33
    看起来不错,感谢分享
    crayonyi
    crayonyi
    OP
    Sep 21, 2016
    34
    @rebelboy2 也有一些人找过我,要爬这种类型的数据、以及做数据分析和广告投放的。 但是公司的主业是做“中国 5000 万贫困人口与社会公益组织的对接”,所以就没有去做你说的“据本身就能兑换价值”的事情。
    我一个人也有些忙不经过来。
    不过这个爬虫是可以爬任意数据的,如果你感兴趣,可以做一些尝试。 我可以帮你搭建下基础环境。
    xinali
    xinali
    Sep 21, 2016 via Android
    35
    @crayonyi 怎么加入?
    crayonyi
    crayonyi
    OP
    Sep 21, 2016
    36
    @xinali 在 github issue 下留言告诉我 https://github.com/bowenpay/wechat-spider/issues/1 ,这两天我把要做的事情,都列出来。 合作方式也写在上面。
    figofuture
    figofuture
    Sep 21, 2016
    37
    mark
    ljcarsenal
    ljcarsenal
    Sep 21, 2016
    38
    @rebelboy2 去哪携程的什么平台啊。。会抓取却不知道如何利用价值
    goodluck
    goodluck
    Sep 21, 2016
    39
    要不是最近比较忙,我就来参加了。。。上班狗闲暇时间很少。。,经常加班。
    bramblex
    bramblex
    Sep 21, 2016
    40
    @likai

    国外的 ngo 还真是这么做的, ngo 可以在捐款中抽取 ngo 运营费用,其中包括运营人员的基本工资。但是所有的开销啥的都必须是透明的,被监督的。

    虽然做公益是靠理想,但是光靠理想会饿死的。然而广大圣母婊往往都喜欢脱离现实,不管不顾他人死活,只为了抒发原始情绪,感动自己。
    GitFree
    GitFree
    Sep 21, 2016
    41
    老朋友手工点赞
    fhefh
    fhefh
    Sep 21, 2016
    42
    先 mark
    crayonyi
    crayonyi
    OP
    Sep 21, 2016
    43
    @likai 目前的钱都是我们自己垫的,有在接触投资结构。
    crayonyi
    crayonyi
    OP
    Sep 21, 2016
    44
    @GitFree 🤗
    crayonyi
    crayonyi
    OP
    Sep 21, 2016
    45
    @bramblex 国内也有一些都是公开的,每年年报里面都有详细说明。 基金会中心网 http://www.foundationcenter.org.cn/ 有一个透明指数,可以看出行业内的透明水平。
    globetour
    globetour
    Sep 21, 2016 via Android
    46
    搜狗平台的验证码很难搞,最好有失败和重试机制,以及能不能爬历史文章
    hustlzp
    hustlzp
    Sep 21, 2016
    47
    支持公益。
    defia
    defia
    Sep 21, 2016
    48
    @crayonyi 我也想问楼主验证码是怎么解决的。。
    guotie
    guotie
    Sep 21, 2016
    49
    支持。

    验证码可以找打码平台解决。
    crayonyi
    crayonyi
    OP
    Sep 21, 2016
    50
    @defia 我实际上是没有解决。 通过足够多的代理 ip 和失败重试机制,绕过这个限制。
    colordancer
    colordancer
    Sep 21, 2016
    51
    这个必需 mark
    chaichaichai
    chaichaichai
    Sep 21, 2016
    52
    试一下抓新榜和传送门?
    crayonyi
    crayonyi
    OP
    Sep 22, 2016
    53
    @chaichaichai 传送门和新榜的文章不全。
    lrh3321
    lrh3321
    Sep 22, 2016
    54
    马克一下
    lixuda
    lixuda
    Oct 19, 2016
    55
    @crayonyi 具体办法是怎么操作的?
    crayonyi
    crayonyi
    OP
    Oct 19, 2016
    56
    @lixuda 爬取的时候,如果遇到验证码,则放弃本次爬取任务,并记录重试次数,然后将任务重新放到爬取队列。 下次爬取的时候,会随机选择一个代理 ip 爬取。 如此重复,直到不出现验证码,或者达到重试次数限制。
    lixuda
    lixuda
    Oct 19, 2016
    57
    @crayonyi 代理 ip 是网络还是购买的?
    crayonyi
    crayonyi
    OP
    Oct 20, 2016
    58
    @lixuda 1 淘宝上搜动态 vps ,有很多卖的。(便宜、方便) 2 自己找机房,拨号上网的那种,(今日头条用的是这种方式,稳定,快,可控)

    我用的是这家的: https://item.taobao.com/item.htm?spm=a230r.1.14.1.RT0O2l&id=525941770043&ns=1&abbucket=11#detail
    crayonyi
    crayonyi
    OP
    Oct 20, 2016
    59
    @lixuda linux 下和 windows 下都需要准备 3 个软件:
    1 定时自动重新拨号软件(如拨号精灵)
    2 实时获取 ip 并提交到服务端(在项目目录下有, bin/getNewIp.py )
    3 代理软件(如 cproxy )
    4BVL25L90W260T9U
    4BVL25L90W260T9U
    Dec 28, 2016
    60
    @crayonyi Hi ,你还在做吗,你怎么知道 “今日头条用的是这种方式,稳定,快,可控”
    hadoop
    hadoop
    Feb 1, 2017
    61
    @crayonyi vps 的 ip 变了,那你怎么连过去呢?还是把程序放在动态 ip vps 上跑
    crayonyi
    crayonyi
    OP
    Feb 3, 2017
    62
    @hadoop 需要在 vps 上部署一个脚本,实时获取 ip ,提交到服务端。
    你说的把程序放在动态 ip vps 上跑也是可以的。
    crayonyi
    crayonyi
    OP
    Feb 3, 2017
    63
    @ospider 早期的今日头条就是这样的。 因为我维护过。
    4BVL25L90W260T9U
    4BVL25L90W260T9U
    Feb 4, 2017
    64
    @crayonyi 哈哈,原来是前辈
    toliho
    toliho
    Mar 14, 2020
    65
    可惜没有更新了,支持楼主和你的公益事业
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3607 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 90ms · UTC 10:07 · PVG 18:07 · LAX 02:07 · JFK 05:07
    ♥ Do have faith in what you're doing.