Responsive image

8260365e - 2023-09-03 22:42 [GF]
今天看到twMediaDownloader的作者風柳停止继续开发了,在推特被马一龙接手后开始这个插件不太好使了
先是出了[API 34]错误的消息,再然后能用一段时间后就没法爬取媒体文件了
最后找了gallery-dl做为代替,下面讲一下怎么用吧
gallery-dl需要一些命令行JSON的知识,尽量先了解关于这部分的知识再往下看

下载地址: https://github.com/mikf/gallery-dl/releases/latest/download/gallery-dl.exe

把文件放到一个文件夹,然后按住Shift+鼠标右键,在此处打开PowerShell窗口
输入
复制代码
  1. gallery-dl --version

回车,能看到类似下面的输出说明可以使用了
复制代码
  1. 1.25.8


基础的用法:
复制代码
  1. gallery-dl [params] <url>

其中[params]是可选的参数,<url>是推文的地址,也可以是推文作者的地址

下面是一些常用的参数讲解
  • -K / -list-keywords:这个参数可以看作品可以使用的关键字,比如标题、发布日期等等,可以用到--filter以及--filename这两个参数等
  • -D / --directory:这个参数可以强制所有的爬取作品指定到下载路径
  • -f / --filenmae:指定下载文件的命名格式,比如
    --filename "{tweet_id}_{filename}.{extension}"
    可以命名文件为「作品id_文件名.文件扩展名」的格式,关键字要加花括号
  • --filter:这个参数可以过滤你需要的作品,比如
    --filter "date > datetime(2023,8,15)"
    可以下载指定晚于2023年8月15日的作品,后面的字符串用的是python语法


这里介绍一个比较实用的技巧
如果之前已经爬取过一个作者的所有文件的话,如果现在需要更新新内容的话只需要使用下面的命令
复制代码
  1. gallery-dl --filter "tweet_id > <tweet_id>" <url>

其中<tweet_id>是你上次爬取的最近文件的推文ID
比如你在9月3号爬取截至这个内容https://twitter.com/furyutei/status/1698286831283134966
那么填写
复制代码
  1. gallery-dl --filter "tweet_id > 1698286831283134966" https://twitter.com/furyutei

就能爬取这个推文之后的文件了

但是掌握这些还不够,最好整个配置文件
配置文件的位置在~/gallery-dl/config.json
如果是windows的话,这个文件需要被命名为config.json并且放置在个人文件夹下的gallery-dl目录下
不知道个人文件夹的话打开资源管理器,在地址栏里面输入%UserProfile%
配置文件的内容可以以官方的配置为基础来做改动
下载地址:https://github.com/mikf/gallery-dl/blob/master/docs/gallery-dl-example.conf

找到下面爬取twitter的部分
复制代码
  1. "twitter":
    {
        "#": "write text content for *all* tweets",
        "postprocessors": ["content"],
        "text-tweets": true
    },


其中"#"是注释,用来说明这部分的功能是怎么样的,可以删掉
"postprocessors"开启脚本爬取完文件后脚本继续处理,可以添加多个处理
"content"是处理的名字,可以看后面的"postprocessor"了解到这段功能就是在爬取推文
"text-tweets"为true开启所有推文爬取,无论推文是否包含媒体

这里我不需要示例里的内容所以全部删除掉,替换成以下的内容
复制代码
  1. "twitter":
    {
        "#": "twMediaDownloader like name format",
        "filename": "{author[name]}-{tweet_id}-{date:%Y%m%d}_{date:%H%M%S}-{num}.{extension}",

        "#": "import twitter cookies from browser",
        "cookies": ["firefox", "/path/to/firefox/profile"]
    },


"filename"是非常常用的参数,他可以规定爬取的文件怎么命名,我使用了类似twMediaDownloader的命名格式
这些参数当前(23/9/3)还是有效的,如果内容有变,请参考下文自行定参
以这条推文为例:https://twitter.com/furyutei/status/1698286831283134966
  • author[name],推文作者的id:furyutei
  • tweet_id,推文的id:1698286831283134966
  • date:%Y%m%d,推文发布的日期:20230903
  • date:%H%M%S,推文发布的时分秒:104827
  • num,第几个媒体文件:这条推文只有一个媒体文件,所以是1
  • extension,文件的扩展名:jpg


组合之后的文件名:furyutei-1698286831283134966-20230903_104827-1.jpg

更多的可以使用的命名参数可以使用下面的命令查询
复制代码
  1. gallery-dl -K https://twitter.com/<tweeter>/status/<tweet_id>

<tweeter><tweet_id>替换成用户名和推文id

而更多可用的命名格式可以查看下面的文档
https://github.com/mikf/gallery-dl/blob/master/docs/formatting.md

"cookies",这个参数可以让脚本使用cookies,有两种使用方式
  1. 固定的cookies,适用服务器之类的使用场景
  2. 从浏览器导入的cookies,适用PC之类的使用场景,省去了查询cookie键值


第一种方法,可以参考示例文件中的exhentai的部分把cookies的键值对填入就行了:
复制代码
  1. "cookies":
    {
        "auth_token": "12345",
    },


文中使用第二种方法:
本人只使用过firefox导入的方法,基于firefox的浏览器也行(比如Waterfox)
只需要把/path/to/firefox/profile替换成你浏览器的配置文件夹的路径就行了
Windows应该在%AppData%\Firefox\Profiles\xxxxxxxx.xxx
其他浏览器请自行参考官方文档和互联网资料

详细的配置文档
https://github.com/mikf/gallery-dl/blob/master/docs/configuration.rst

顺便一提,gallery-dl不只是能爬取twitter,他还能爬取很多网站的媒体文件
比如sankaku,danbooru,exhentai,pixiv,fanbox,fantia,kemono,patreon,misskey等等这些网站
也就是说只要学会一次这个软件,那么很多时候可以用这个软件通吃现在流行的图站
这点还是很赞的


理性客观中立 - 2023-09-03 22:50 [B1F]
可以试试wfdownloader,导入cookie后支持批量下载媒体,包括已锁定的账号,入门也不难,看官微教程操作就行
教程:https://www.wfdownloader.xyz/blog/twitter-downloader-for-images-and-videos


8260365e - 2023-09-03 22:55 [B2F]
这个主要开源,开发积极,功能全面,适用性广,你说的这个我也看看吧,能爬被封禁的帐号有点意思


8260365e - 2023-09-04 04:03 [B3F]
顶一下,让更多的司机看到


2a5535c0 - 2023-09-04 05:58 [B4F]
不是程序员谁懂这些用法啊


张纪俊 - 2023-09-04 06:45 [B5F]
隔行如隔山,完全看不懂


张纪俊 - 2023-09-04 06:45 [B6F]
能有个在线下载视频的就满足了,存的全挂了


OOXXMM - 2023-09-04 07:51 [B7F]
真是看不懂啊,能不能写一个使用步骤例子啊


色图bot - 2023-09-04 09:06 [B8F]
封禁账号不大可能爬


4091749d - 2023-09-04 09:07 [B9F]
好厉害 哦~


93ebb9c2 - 2023-09-04 09:30 [B10F]
学习一下


deadstranded - 2023-09-04 09:44 [B11F]
我爬twitter倒是有工具,叫什么忘了


sakuraaini - 2023-09-04 10:03 [B12F]
先马克,大佬666


otkg - 2023-09-04 10:34 [B13F]


阿波 - 2023-09-04 18:18 [B14F]


8260365e - 2023-09-04 18:41 [B15F]
使用我都讲明白了
安装没讲,我再补充个安装步骤和一些细节吧


千禧de决斗z - 2023-09-14 13:15 [B16F]
好复杂又要学新东西


chenbo - 2023-09-14 23:34 [B17F]
刚想要问,有大神知道有没有其他替代插件,方便点的?


- 2023-09-15 00:19 [B18F]


sherlock96 - 2023-09-15 16:24 [B19F]
膜拜大佬,特地来学习下


78e7c3d3 - 2023-09-15 20:35 [B20F]



不会用


8260365e - 2023-09-15 20:38 [B21F]
你的配置文件格式有问题,图里面是你的配置文件全部内容?

先别用这个配置文件(把config.json移动到别的文件夹),无配置默认看看能不能下载

能下载的话再仔细看我的教程,下面的讲解都是基于gallery-dl-example.conf这个配置改的
去下载这个文件再做改动


78e7c3d3 - 2023-09-15 22:46 [B22F]
不会弄配置文件
暂时先这样用了


gallery-dl --cookies-from-browser firefox --filter "tweet_id > 1698286831283134966" https://twitter.com/furyutei/media


林无 - 2023-09-15 23:07 [B23F]
  


8260365e - 2023-09-16 05:09 [B24F]
那你可以多加条参数
复制代码
  1. -f "{author[name]}-{tweet_id}-{date:%Y%m%d}_{date:%H%M%S}-{num}.{extension}"


也能有我帖子里面命名的效果


mustlezoos - 2023-09-16 08:14 [B25F]
唉,今早发现原来的api不能用了,马斯克™太艹了,没事瞎改什么api这又要重新写


a631370312 - 2023-09-16 10:28 [B26F]
求分享阿


mustlezoos - 2023-09-17 08:06 [B27F]
唉,找了个代食品yt-dlp,感觉自己好sb,而且原来的古早项目的api1.1不能用了,古早视频下不了除非魔改yt-dlp,卧槽这api比腾讯的还tm难用,马斯克搞jb啊,虽然twitter现在是你的但你别把twitter搞死啊


8260365e - 2023-09-17 08:07 [B28F]
Fuck Elon Musk       

话说yt-dlp下twitter比gallery-dl好用么?


mustlezoos - 2023-09-17 08:56 [B29F]
怎么说,yt-dlp命令行还是好用的,比起gallery-dl应该就是伯仲之间,但是你要手填,但是比起之前的api还是差了好远,acviate.json没法调用了,之前的可以抓整个推的图片和视频,新的api也没时间看而且挺乱的连流程都没,自己动手阅读肯定费时间的,时间充裕还是搞清楚流程用api是最好的


4d96b851 - 2023-09-17 09:14 [B30F]
用户被禁言,该主题自动屏蔽!






桌面版


Powered by SP Project v1.0 © 2010-2019
Time 0.002422 second(s),query:4 Gzip enabled


Top