女票想批量保存微博猫咪图片,就写了个微博图片爬虫下载器~ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
jasonkayzk
V2EX    分享创造

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

  •  
  •   jasonayzk
    JasonkayZK 2020-12-20 10:00:12 +08:00 11220 次点击
    这是一个创建于 1831 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Github 地址:

    https://github.com/JasonkayZK/weiboPicDownloader

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

    weiboPicDownloader_4.png

    第 1 条附言    2020-12-20 12:13:22 +08:00

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

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

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

    第 2 条附言    2021-01-07 13:15:27 +08:00

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

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

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

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

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





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

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

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

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

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

    https://github.com/JasonkayZK/weiboPicDownloader/releases
    ririliu
        84
    ririliu  
       2021-01-26 16:46:49 +08:00
    @jasonkayzk 我用的就是这个版本,报错的图片我查看了下会不完整(下面有一部分是没有内容的),是和网络有关系?不知道能否加个重试的机制,某张图片重试 n 次还失败就跳过,因为现在这样报错每次弹出来我都得点一下,下载才能继续,我下的某个微博比如 2000 多张图片,就得一直守着点了几十次报错的弹窗
    jasonkayzk
        85
    jasonkayzk  
    OP
       2021-01-27 11:30:11 +08:00
    @ririliu 图片下载不完全应该就是网络的原因了,这个问题我也碰到过。这个问题我看一下怎么解决吧。在下一个版本解决了!
    ririliu
        86
    ririliu  
       2021-02-01 10:43:04 +08:00
    @jasonkayzk 已经更新了吗? releases 里面没看到
    jasonkayzk
        87
    jasonkayzk  
    OP
       2021-02-03 08:17:13 +08:00 via Android
    @ririliu 最近没什么时间,在搞毕设…!
    moonkiller
        88
    moonkiller  
       2021-02-13 12:35:22 +08:00
    @jasonkayzk 求支持视频
    jasonkayzk
        89
    jasonkayzk  
    OP
       2021-02-14 10:44:01 +08:00
    @moonkiller 会考虑添加视频;
    ririliu
        90
    ririliu  
       2021-03-08 11:38:16 +08:00
    还会更新嘛。。。
    jasonkayzk
        91
    jasonkayzk  
    OP
       2021-03-08 12:13:13 +08:00 via Android
    @ririliu 会更新,但是现在在搞毕业论文。估计要等一段时间了。
    ririliu
        92
    ririliu  
       2021-05-19 19:10:16 +08:00
    @jasonkayzk 呃,我是不是得自己动手改代码了...
    jasonkayzk
        93
    jasonkayzk  
    OP
       2021-05-19 20:36:23 +08:00
    @ririliu #92 不好意思哈,最近都没在搞这个= =,估计还要一段时间。如果你比较急的话可以 Fork 下来自己改~
    ririliu
        94
    ririliu  
       2021-06-09 18:34:14 +08:00
    @jasonkayzk https://github.com/JasonkayZK/weiboPicDownloader/issues/5, 这个是什么问题呢,运行不起来
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3891 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 54ms UTC 05:11 PVG 13:11 LAX 21:11 JFK 00:11
    Do have faith in what you're doing.
    ubao msn 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