V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
liuser666
V2EX  ›  问与答

为什么微信公众号难抓取?

  •  
  •   liuser666 · 2020-11-14 11:08:11 +08:00 · 6383 次点击
    这是一个创建于 1472 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我看 rsshub 说微信公众号难抓取, 但是用 safari 和 chrome 浏览器都可以不登陆直接浏览啊... 有什么特殊的技术让微信分辨爬虫吗? 大不了我用 puppeteer 等一些模拟浏览器就是咯.

    18 条回复    2020-11-16 18:31:26 +08:00
    anonymous2022
        1
    anonymous2022  
       2020-11-14 11:10:20 +08:00 via iPhone   ❤️ 1
    难在获取历史文章链接吧
    EasonC
        2
    EasonC  
       2020-11-14 11:51:57 +08:00 via iPhone
    微信的文章选择在浏览器打开又不难,你试试在浏览器看微信公众号全部的文章。我抓取都失败了。别折腾了,你搞不到的,搞到也不会和微信同步更新。
    westoy
        3
    westoy  
       2020-11-14 12:26:15 +08:00
    上了规模就难了
    需要大量的手机
    需要海量的帐号(以及手机号码)
    需要大量不同出口的 IP
    opengps
        4
    opengps  
       2020-11-14 12:32:46 +08:00   ❤️ 1
    抓取是很简单的,不是问题所在
    问题是,你缺少索引页,导致没有批量入口。穷举的代价又比较大,所以也就不适合使用
    opengps
        5
    opengps  
       2020-11-14 12:35:00 +08:00   ❤️ 1
    搜狗能检索微信文章,这一点已经说明问题了:
    要么搜狗拿到了索引,要么微信主动讲文章链接送给搜狗。搜狗肯定不是自己去“不经允许”爬取的,这里各位爬虫大佬们要小心法律风险
    buffzty
        6
    buffzty  
       2020-11-14 14:28:34 +08:00
    微信 pc 端 微信浏览器可以浏览公众号的所有文章. 调用 api 要用到登陆后获取到的一个参数. 调用文章类的 api 有限速. 如果多账号 多 ip 再逆向微信 pc 端 是可以做成这个产品的. 但是谁敢呢 南山必胜客不治你吗. 我公司就算让我做 我都不会做的,现在市面上没有这种产品.不是他们技术不行 马哥劝你 耗子尾汁
    cmdOptionKana
        7
    cmdOptionKana  
       2020-11-14 14:59:02 +08:00
    @opengps 搜狗宣布,签订最终私有化协议,将成为腾讯全资子公司,预计交易将在 2020 年第四季度完成。完成后,搜狗将从纽交所退市。
    Maskeney
        8
    Maskeney  
       2020-11-14 17:35:35 +08:00
    微信重新实现了 TLS,你可以试试自己抓抓包看,根本抓不到正确的 URL,更不用说抓公众号文章了
    junan0708
        9
    junan0708  
       2020-11-14 17:46:20 +08:00 via Android
    有第三方提供接口服务的,一年才 200 多,试了一下,数据还挺全的。
    xiaoyazi
        10
    xiaoyazi  
       2020-11-14 17:47:59 +08:00 via iPhone
    任何看得到的数据抓取都没难度,难的是数量级好不好
    Tianyan
        11
    Tianyan  
       2020-11-14 20:25:06 +08:00
    @anonymous2022 wemp.app 这个就是靠的抓取公众号获利的
    milukun
        12
    milukun  
       2020-11-14 21:08:12 +08:00   ❤️ 8
    曾经的经验给你简单分享一下,有几个知识点需要知道:
    ( 1 )微信文章有两种链接,临时链接和永久链接。在微信里打开的是永久链接,在搜狗里面搜索出来的是临时链接
    ( 2 )顾名思义,临时链接有时间限制,一般超过 6 个小时就无法打开显示链接已过期。但是放到微信里点又可以打开,因为微信使用了 key 进行了链接转换。
    ( 3 )这个 key 又分为万能 key (解任何文章,与你的微信账号相关联,有效期 2 小时)和公众号 key (只对单一公众号有效,有效期 2 小时)。key 不仅可以转换链接,还可以用来打开列表页。
    ( 4 )一个微信账号的万能 key 使用频繁会导致封号(无法转换、浏览文章)
    ( 5 )自 19 年开始搜狗不再根据时间顺序返回搜索结果,导致无法通过“关键词”查找最新文章,且未登录账号只能看到前 100 页的数据
    ( 6 )搜狗搜索公众号显示最近 10 条文章(目前已经不显示数据了),也是临时链接
    ( 7 )搜狗搜索微信出现验证码非常频繁
    ( 8 )使用手机或 pc 客户端可以查看公众号列表页,但是 pc 端需要先关注才能看到。这里能做的抓取方案是中间人攻击,但是别忘了你是用自己的微信号做的,你要考虑怎么自动化控制刷页面,最重要的是你能撑几个小时不被封号?以及你有多少实例,能花大价钱购买养好的微信号呢?(新号权重非常低,浏览列表页的数量很少,如果只看不养号,很快就被封了)
    ( 9 )可能有人说,不就是 python 发个 requests 请求吗?我手机刷一下列表页,找到 url,request body,模拟一下不就好咯。关于这一点你可以去看( 3 )和( 4 )

    最主要的成本来自于,需要真实有效的微信号和批量操作。

    综合以上成本,你倒不如选择有腾讯做股东的公众号数据分析平台-新榜(不是做广告哈)去买数据....
    当然,数据二道贩子有很多,也有很多个人在卖,都比自己去搞定要低成本的多(学习除外)

    另外未经授权抓取数据并贩卖是违法行为!
    milukun
        13
    milukun  
       2020-11-14 21:09:24 +08:00
    重点忘说了,chromedriver 也好,puppeteer 也好,甚至按键精灵也好,这些都逃不过微信号这一关的。
    akaayy
        14
    akaayy  
       2020-11-14 23:00:15 +08:00 via Android
    @junan0708 求推荐这个第三方平台
    Tink
        15
    Tink  
       2020-11-15 00:13:21 +08:00 via Android
    入口
    Tink
        16
    Tink  
       2020-11-15 00:16:06 +08:00 via Android   ❤️ 1
    最靠谱的办法是找个摄像机对着手机屏幕,手机自动打开微信里面的文章,然后摄像机逐行 OCR,然后入库
    junan0708
        17
    junan0708  
       2020-11-15 07:41:27 +08:00 via Android   ❤️ 1
    @akaayy 天行数据
    milukun
        18
    milukun  
       2020-11-16 18:31:26 +08:00
    @Tink 可以直接用 fd 或者 charles 做中间人攻击,直接拿到所有请求的 body,写个规则过滤一下,直接拿到 json 数据不香吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5609 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:13 · PVG 17:13 · LAX 01:13 · JFK 04:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.