V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
jasonkayzk

女票想批量保存微博猫咪图片,就写了个微博图片爬虫下载器~

  •  
  •   jasonkayzk ·
    JasonkayZK · Dec 20, 2020 · 11499 views
    This topic created in 1964 days ago, the information mentioned may be changed or developed.

    Github 地址:

    https://github.com/JasonkayZK/weiboPicDownloader

    输入微博用户 ID,选择下载日期即可:

    weiboPicDownloader_4.png

    Supplement 1  ·  Dec 20, 2020

    整个下载器的实现过程其实挺简单的,有兴趣的可以看我之前总结的过程;

    关于Linux和MacOS的版本,当时就是冲着Electron跨平台去写的,结果尝试编译了几次都有问题;= =

    我本身也不是搞前端的,希望有大佬能出手相助看看是啥个问题;

    Supplement 2  ·  Jan 7, 2021

    用Electron-Vue模板重构了一下代码;

    现在各个平台都能够正常使用npm run dev本地开发,npm run build编译了;

    94 replies    2021-06-09 18:34:14 +08:00
    wushigejiajia01
        1
    wushigejiajia01  
       Dec 20, 2020 via Android
    可以爬小姐姐吧?
    那真是好东西了
    jasonkayzk
        2
    jasonkayzk  
    OP
       Dec 20, 2020
    @wushigejiajia01 只要是微博能看到的图片都是可以爬的。但是不能去水印;
    Tyuans
        3
    Tyuans  
       Dec 20, 2020
    批量搬运小姐姐图片到外网
    jasonkayzk
        4
    jasonkayzk  
    OP
       Dec 20, 2020
    @Tyuans 哈哈,可以可以~
    anxn
        5
    anxn  
       Dec 20, 2020 via Android
    Linux 能不能也给一份 release,我编译会报错
    whatalittleboy
        6
    whatalittleboy  
       Dec 20, 2020
    体积有点大,解压后 160 MB,但启动速度挺快的👍👍
    s1th
        7
    s1th  
       Dec 20, 2020 via iPhone
    别光说,小姐姐图片多的微博是哪个
    jasonkayzk
        8
    jasonkayzk  
    OP
       Dec 20, 2020
    @whatalittleboy 体积大是因为 Electron 编译之后本身就太大,项目挺简单的也没用啥东西。= =
    liyiecho
        9
    liyiecho  
       Dec 20, 2020   ❤️ 1
    hfJ433
        10
    hfJ433  
       Dec 20, 2020   ❤️ 1
    @s1th 6032474791 爬起来
    wangdefu
        11
    wangdefu  
       Dec 20, 2020 via Android
    @liyiecho 这个可以定时 比如每天下载某个固定用户的微博吗

    我关注了一个博主 经常几天就清空
    jasonkayzk
        12
    jasonkayzk  
    OP
       Dec 20, 2020
    @anxn 我试着编译一下看看= =
    jasonkayzk
        13
    jasonkayzk  
    OP
       Dec 20, 2020
    @wangdefu 如果是 py 脚本的话,设置个 crontab 丢到服务器上跑呗;
    shgdym
        14
    shgdym  
       Dec 20, 2020
    py 写的 很简单的一个微博爬虫: https://github.com/shgdym/weiboSpider
    shgdym
        15
    shgdym  
       Dec 20, 2020
    qxsd
        16
    qxsd  
       Dec 20, 2020 via Android
    有可以爬评论图片的吗
    wangdefu
        17
    wangdefu  
       Dec 20, 2020 via Android
    @shgdym 有点意思
    会不会喝茶啊
    jasonkayzk
        18
    jasonkayzk  
    OP
       Dec 20, 2020
    @qxsd 这个也可以爬,只是稍微麻烦一些了;你可以直接 Fork 这个仓库,然后修改鸭!
    crab
        19
    crab  
       Dec 20, 2020
    时间范围判断不只要大于等于开始时间,也还要判断一个小于等于结束时间吧。
    renyiqiu
        20
    renyiqiu  
       Dec 20, 2020
    不错,用起来
    kingcos
        21
    kingcos  
       Dec 20, 2020
    如果是已编辑是不是就爬不到了?
    jasonkayzk
        22
    jasonkayzk  
    OP
       Dec 20, 2020
    @kingcos 这个…,我也不玩微博= =,我也不知道啊!你试试 /呆滞
    justfun
        23
    justfun  
       Dec 20, 2020
    杀鸡焉用宰牛刀 😅😂。正好昨天用 PHP 写了个微博爬虫 备份了下自己微博的数据。体积才不到 20KB
    limuyan44
        24
    limuyan44  
       Dec 20, 2020
    几年前的一个深夜为了爬微博搞笑排行榜的下面的表情包写了个,微博展示的图片算是又压了一遍,记得路径改成 large 就好了,后来倒是爬了不少小姐姐。。
    loading
        25
    loading  
       Dec 20, 2020 via Android
    @s1th 对对对,一般这种里面最有价值的就是 list,这居然没有…
    jasonkayzk
        27
    jasonkayzk  
    OP
       Dec 20, 2020
    @justfun hhhh~ 正好前段时间粗略看了下 Electron,就写了一个呗;😅😅
    JCZ2MkKb5S8ZX9pq
        28
    JCZ2MkKb5S8ZX9pq  
       Dec 20, 2020
    我也造过这个轮子,我记得获取微博的时候是需要登陆过的 cookie 。然后下载图片没问题,但下载视频的地址没搞(入口用的 wap 版)。

    另外借楼问一下,之前搞的时候发现过被夹的图片(会变成灰色图),获得 id 之后也能看到原图。但过太久了,忘了怎么搞了。有大神知道嘛?
    jasonkayzk
        29
    jasonkayzk  
    OP
       Dec 20, 2020
    @JCZ2MkKb5S8ZX9pq 我的这个是不需要 cookie 的,用微博移动版: https://m.weibo.cn/ ,可以看看这个能不能实现= =
    PbCopy111
        31
    PbCopy111  
       Dec 20, 2020
    @wangdefu #11 必须可以定时。。。我一直在用,哈哈哈,你看看说明
    5966
        32
    5966  
       Dec 20, 2020 via iPhone
    不错,问问,我就想找一个命名规则是根据微博(首句)内容命名的!
    YouLMAO
        33
    YouLMAO  
       Dec 20, 2020 via Android
    你确定 pussy 是猫咪,还是对你意有所指
    jasonkayzk
        34
    jasonkayzk  
    OP
       Dec 21, 2020
    @5966 这个改一下源码就好了,在寻找图片链接的时候,同时判断一下微博的内容是否符合你的要求就行了!
    someonedeng
        35
    someonedeng  
       Dec 21, 2020
    @YouLMAO 老蛇皮了
    liumxz
        36
    liumxz  
       Dec 21, 2020
    没下载地址啊
    liumxz
        37
    liumxz  
       Dec 21, 2020
    看到了 我的
    lwlizhe
        38
    lwlizhe  
       Dec 21, 2020
    呵,一看就是假的,试都不用试





    会写程序的会有女朋友?[手动狗头]
    jasonkayzk
        39
    jasonkayzk  
    OP
       Dec 21, 2020
    @lwlizhe 啪的一下,很快啊!
    akaayy
        40
    akaayy  
       Dec 21, 2020 via Android
    @justfun 能分享学习一下吗
    skygee
        41
    skygee  
       Dec 21, 2020
    这个不怕封 ip 吗
    shgdym
        42
    shgdym  
       Dec 21, 2020
    @wangdefu 在我自己服务器上跑了一年多了
    jasonkayzk
        43
    jasonkayzk  
    OP
       Dec 21, 2020
    @skygee 如果不是深度使用,以 JS 单线程和设置的延时来看,这点爬虫流量应该算不了什么吧= =;
    night98
        44
    night98  
       Dec 21, 2020
    能爬原图吗?还是普通大图?原图大小一般 3-5Mb 大小
    jasonkayzk
        45
    jasonkayzk  
    OP
       Dec 21, 2020
    @night98 应该是原图,是请求返回 json 的"large"字段;
    JCZ2MkKb5S8ZX9pq
        46
    JCZ2MkKb5S8ZX9pq  
       Dec 21, 2020
    @jasonkayzk
    试了下倒真是,这个个人首页需要登录,全部微博反而不需要权限了。
    这个你试下来有频度限制嘛,访问多了会出 418 错误什么的嘛。
    jasonkayzk
        47
    jasonkayzk  
    OP
       Dec 21, 2020
    @JCZ2MkKb5S8ZX9pq 暂时没发现频度限制,本来想嵌入一个 go 并发下载的,后来想了想,万一太猛被封 IP 了呢,所以还是用 JS 吧;
    JCZ2MkKb5S8ZX9pq
        48
    JCZ2MkKb5S8ZX9pq  
       Dec 21, 2020
    @jasonkayzk

    我看了看 log,这个 mobile 版的我也抓过。不过去年请求参数限制过一阵子。所以改用 wap+有效 cookie 了。

    # 20190717 已失效 改用 token 验证 尚未破解 目前只能获得前 10 条

    但是现在请求参数反而简化了。感觉说不定啥时候微博又会变。
    adm7n
        49
    adm7n  
       Dec 21, 2020
    微博有个好友圈功能,只有互相关注了才能看到好友圈内的微博,请问这种情况是否可以下载图片(我的账号有好友圈权限)。
    fl2d
        50
    fl2d  
       Dec 21, 2020
    她可能只是想让你买只猫
    jasonkayzk
        51
    jasonkayzk  
    OP
       Dec 21, 2020   ❤️ 1
    @JCZ2MkKb5S8ZX9pq 哈哈,这个倒是有可能;爬虫这种一直都不稳定;= =
    jasonkayzk
        52
    jasonkayzk  
    OP
       Dec 21, 2020
    @adm7n 这个估计不行,得用 cookie 的方式;可以参考其他人发的解决方案;
    jasonkayzk
        53
    jasonkayzk  
    OP
       Dec 21, 2020
    @fl2d 养了的,哈哈
    justfun
        54
    justfun  
       Dec 21, 2020
    @akaayy 极其的简陋😂 主要微博返回的 json 太详细了
    https://github.com/scriptway/weibo_backup
    nspih
        55
    nspih  
       Dec 21, 2020
    年轻人不讲武德,居然来爬、来偷袭我 69 岁老同志的微博。这好吗?这不好。希望你耗子尾汁
    ab
        56
    ab  
       Dec 21, 2020 via iPhone
    有点意思啊
    justfun
        57
    justfun  
       Dec 21, 2020 via iPhone
    @adm7n 可以的 有 cookie 就行。参考我楼上发的 可以爬到
    jasonkayzk
        58
    jasonkayzk  
    OP
       Dec 21, 2020
    @ab 谢谢夸奖,哈哈
    jasonkayzk
        59
    jasonkayzk  
    OP
       Dec 21, 2020
    @nspih 二百多公斤的英国大理石都爬不动我的一个微博;
    JCZ2MkKb5S8ZX9pq
        60
    JCZ2MkKb5S8ZX9pq  
       Dec 21, 2020
    @justfun

    请问这个接口的来源是哪一端?
    因为微博入口太多,你提到了取 header,可以考虑附上参考地址,因为各个入口的 header 可能不大一样。
    justfun
        61
    justfun  
       Dec 21, 2020
    @JCZ2MkKb5S8ZX9pq PC Web 端 。https://weibo.com/ 到这里登录 。如果是旧版界面的话 右上角头像偏下的位置有一个立即体验新版微博的入口
    jackrebel
        62
    jackrebel  
       Dec 21, 2020
    这个是个好玩的东西。
    jasonkayzk
        63
    jasonkayzk  
    OP
       Dec 21, 2020
    @jackrebel 哈哈,谢谢夸奖~
    terrywater
        64
    terrywater  
       Dec 21, 2020
    @wushigejiajia01 爬妹子? 好有画面感。上攀双峰,下探双叶。
    terrywater
        65
    terrywater  
       Dec 21, 2020
    @jasonkayzk 你闪了吗?你没有闪!
    qzhai
        66
    qzhai  
       Dec 22, 2020
    MD, 有女票又有猫
    iyg429
        67
    iyg429  
       Dec 24, 2020 via iPhone
    有没有微博视频下载?
    iyg429
        68
    iyg429  
       Dec 24, 2020 via iPhone
    微博好多想看的我连续剧 还是高清的。如果可以选定日期下载好完美
    jasonkayzk
        69
    jasonkayzk  
    OP
       Dec 24, 2020
    @iyg429 是可以添加视频下载的,我请求的那个 json 里面有视频的流地址;但是一般视频挺大的我就没有加= =;
    mojimomo
        70
    mojimomo  
       Dec 24, 2020
    我批量下了很多图片,但是发现个问题,很多图片下载不完整都是一条条线。是不是下载的模块还需要优化下?
    jasonkayzk
        71
    jasonkayzk  
    OP
       Dec 24, 2020
    @mojimomo 可能是因为图片木有下载完;等全部下载完应该就全显示了;如果下了一半,会出现这个问题;
    overthemoon
        72
    overthemoon  
       Dec 24, 2020
    收藏了,缺一个叫我帮忙下载微博图片的女朋友
    jasonkayzk
        73
    jasonkayzk  
    OP
       Dec 24, 2020
    @overthemoon 哈哈,肯定会有的!
    mojimomo
        74
    mojimomo  
       Dec 25, 2020
    @jasonkayzk 应该是完全下载完的了,因为进度条都显示完成了。
    这个估计是我用过的体验最好的微博下载了
    界面好看加上图片有日期
    就是这个图片下载有问题,希望能够完善一下
    dongxy688
        75
    dongxy688  
       Dec 25, 2020
    爬下来放外网卖了
    jasonkayzk
        76
    jasonkayzk  
    OP
       Dec 25, 2020
    @dongxy688 别把,是个狼人!
    jasonkayzk
        77
    jasonkayzk  
    OP
       Dec 25, 2020
    @mojimomo 多谢夸奖哈,我最近准备回家。回家之后,看看能不能重构一下代码,把这个修复一下;顺便支持跨平台!
    Jamestone
        78
    Jamestone  
       Dec 27, 2020
    @Raynard 好多都反馈不能用了,我安装后也不能用
    jasonkayzk
        79
    jasonkayzk  
    OP
       Jan 7, 2021
    @anxn Linux 版本已经搞定了;
    jasonkayzk
        80
    jasonkayzk  
    OP
       Jan 7, 2021
    用模板重构了代码,加上了 Linux 和 Mac 的 Release ;
    anxn
        81
    anxn  
       Jan 8, 2021 via Android
    @jasonkayzk 已用上,多谢
    ririliu
        82
    ririliu  
       Jan 25, 2021
    一直会有 js 报错:
    Uncaught Exception:
    Error: read ECONNREST
    at _errnoException(util.js:1024:11)
    at TLSWrap.onread(net.js:615:25)
    jasonkayzk
        83
    jasonkayzk  
    OP
       Jan 26, 2021
    @ririliu 没遇见过这个错误啊~下最新的版本试试?

    https://github.com/JasonkayZK/weiboPicDownloader/releases
    ririliu
        84
    ririliu  
       Jan 26, 2021
    @jasonkayzk 我用的就是这个版本,报错的图片我查看了下会不完整(下面有一部分是没有内容的),是和网络有关系?不知道能否加个重试的机制,某张图片重试 n 次还失败就跳过,因为现在这样报错每次弹出来我都得点一下,下载才能继续,我下的某个微博比如 2000 多张图片,就得一直守着点了几十次报错的弹窗
    jasonkayzk
        85
    jasonkayzk  
    OP
       Jan 27, 2021
    @ririliu 图片下载不完全应该就是网络的原因了,这个问题我也碰到过。这个问题我看一下怎么解决吧。在下一个版本解决了!
    ririliu
        86
    ririliu  
       Feb 1, 2021
    @jasonkayzk 已经更新了吗? releases 里面没看到
    jasonkayzk
        87
    jasonkayzk  
    OP
       Feb 3, 2021 via Android
    @ririliu 最近没什么时间,在搞毕设…!😓
    moonkiller
        88
    moonkiller  
       Feb 13, 2021
    @jasonkayzk 求支持视频😭
    jasonkayzk
        89
    jasonkayzk  
    OP
       Feb 14, 2021
    @moonkiller 会考虑添加视频;
    ririliu
        90
    ririliu  
       Mar 8, 2021
    还会更新嘛。。。
    jasonkayzk
        91
    jasonkayzk  
    OP
       Mar 8, 2021 via Android
    @ririliu 会更新,但是现在在搞毕业论文。估计要等一段时间了。
    ririliu
        92
    ririliu  
       May 19, 2021
    @jasonkayzk 呃,我是不是得自己动手改代码了...
    jasonkayzk
        93
    jasonkayzk  
    OP
       May 19, 2021
    @ririliu #92 不好意思哈,最近都没在搞这个= =,估计还要一段时间。如果你比较急的话可以 Fork 下来自己改~
    ririliu
        94
    ririliu  
       Jun 9, 2021
    @jasonkayzk https://github.com/JasonkayZK/weiboPicDownloader/issues/5, 这个是什么问题呢,运行不起来
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4625 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 143ms · UTC 10:08 · PVG 18:08 · LAX 03:08 · JFK 06:08
    ♥ Do have faith in what you're doing.