#share
https://diff.wikimedia.org/2025/04/01/how-crawlers-impact-the-operations-of-the-wikimedia-projects/
https://diff.wikimedia.org/2025/04/01/how-crawlers-impact-the-operations-of-the-wikimedia-projects/
Diff
How crawlers impact the operations of the Wikimedia projects
Since the beginning of 2024, the demand for the content created by the Wikimedia volunteer community – especially for the 144 million images, videos, and other files on Wikimedia Commons – has grow…
Forwarded from tacwolfrevo
Please open Telegram to view this post
VIEW IN TELEGRAM
大家知道哪些还在用非主流编码的网站?(如 gbk、shift jis等,不局限于中文编码)
在处理非 utf8 的 html,找点现实例子做测试参考。👀
在处理非 utf8 的 html,找点现实例子做测试参考。👀
以防万一,建议各位备份一下自己的 GitHub repo。
ref: https://github.com/orgs/community/discussions/156515
update: https://www.githubstatus.com/incidents/jfvgcls9swln
ref: https://github.com/orgs/community/discussions/156515
update: https://www.githubstatus.com/incidents/jfvgcls9swln
平平无奇的三周。
STWP 2025 第 14 周周报
- 尝试了在 linux 上操作磁带机、使用 ltfs @yangyunfei @yzqzss
- 同步了部分 chinaxiv pdf
STWP 2025 第 15 周周报
- 鼓捣 MeiliSync @Ovler
STWP 2025 第 16 周周报
- c2025-4 @Ovler
STWP 2025 第 14 周周报
- 尝试了在 linux 上操作磁带机、使用 ltfs @yangyunfei @yzqzss
- 同步了部分 chinaxiv pdf
STWP 2025 第 15 周周报
- 鼓捣 MeiliSync @Ovler
STWP 2025 第 16 周周报
- c2025-4 @Ovler
Save The Web Project
🎉🎂 Save The Web Project 三岁啦! 大家有什么想说的吗?或者希望我们接下来做哪些方面的工作?😀
Please open Telegram to view this post
VIEW IN TELEGRAM
Save The Web Project
平平无奇的三周。 STWP 2025 第 14 周周报 - 尝试了在 linux 上操作磁带机、使用 ltfs @yangyunfei @yzqzss - 同步了部分 chinaxiv pdf STWP 2025 第 15 周周报 - 鼓捣 MeiliSync @Ovler STWP 2025 第 16 周周报 - c2025-4 @Ovler
STWP 2025 第 19 周周报
本周的产量同样稀少,记一点流水账吧。
- 用 Go 重写了两年前写的 https://github.com/saveweb/fdroidswh 小玩意,用于跟踪 F-Droid Repo 的应用更新,将源代码仓库推送到 SWH 存档。 https://service-fdroidswh.saveweb.org/
- 响应了 6 个画吧备份导出请求。
- dokuwiki dumper 小重构 WIP: https://github.com/saveweb/dokuwiki-dumper/pull/14
- 把我们的 Gentoo 服务器滚到了最新。
- 由于长期没有任务,停掉了所有的 tracker 。
本周的产量同样稀少,记一点流水账吧。
- 用 Go 重写了两年前写的 https://github.com/saveweb/fdroidswh 小玩意,用于跟踪 F-Droid Repo 的应用更新,将源代码仓库推送到 SWH 存档。 https://service-fdroidswh.saveweb.org/
- 响应了 6 个画吧备份导出请求。
- dokuwiki dumper 小重构 WIP: https://github.com/saveweb/dokuwiki-dumper/pull/14
- 把我们的 Gentoo 服务器滚到了最新。
- 由于长期没有任务,停掉了所有的 tracker 。
GitHub
GitHub - saveweb/fdroidswh: Extract Git/SVN repo urls from F-Droid index and submit to Software Heritage (softwareheritage.org)
Extract Git/SVN repo urls from F-Droid index and submit to Software Heritage (softwareheritage.org) - saveweb/fdroidswh
存档误入深水区——If Summer is calling us
去年我在寻 Golang 写的 WARC archiver,然后发现了 Zeno。把玩一番,发现些问题,然后发 PR 修,慢慢就参与进去了。
两个月前,突然时不时蹦出些非 web archiving 领域相关的 GitHub 账号跑来 Zeno 这个冷门项目发奇怪的 issue 和 PR。我一开始还以为是啥新型社工攻击,问了开发者才知道是因为 Google Summer of Code,所以人们跑过来套磁。
定睛一看,果然 Zeno 在 Internet Archive 今年 Google Summer of Code 的预定范围内。
以前只说过但没了解过 GSoC ,它 FAQ 说,只要是18+在校生或者开源新手,就可以写份关于你想要做的项目的提案(proposal)申请参加。
然后再一瞅,什么,参加 GSoC 竟然有钱拿!如果人在中国,成功结项能拿到 3600$ 津贴(GSoC 根据各国的「人均平价购买力」来决定津贴数额,并设有上下限)。这下必须狠狠参加了。😂
于是我也交了份提案,内容主要是说做 Headless archiving、修 CSS parser、修现有 issue、写个类似 httpbin 的 dummy site 方便做 E2E 测试。
https://summerofcode.withgoogle.com/programs/2025/projects/afDanpOP
提交提案之后就是一个多月漫长的等待了,这期间也没完全闲着,糊了些PR。
GSoC 竞争还是挺激烈的,今年总共 13k 申请人,最终被接受的只有 1.2k。今年和我一同被入选 IA 的 GSoC contributor 只有 5 位。
这周联系上了我的 GSoC 项目导师,进了 IA 的 Slack 旁观了他们开周会,很酷,竟然看到了 Brewster Kahle 出现。🤩
又能做存档,又能线上观摩 IA,又能搓代码,还有米。接下来,就是要在这个暑假把提案给实现,通过中期和最终评估。
感谢 Google。虽然 Google 过去一年杀死了 goo.gl 短链、关闭了搜索快照。😅
感谢 Zeno 的开发者 CorentinB 。
感谢 @Ovler 检查我的 proposal 。
感谢 IA 。
这个夏天我们直接原地起飞。
去年我在寻 Golang 写的 WARC archiver,然后发现了 Zeno。把玩一番,发现些问题,然后发 PR 修,慢慢就参与进去了。
两个月前,突然时不时蹦出些非 web archiving 领域相关的 GitHub 账号跑来 Zeno 这个冷门项目发奇怪的 issue 和 PR。我一开始还以为是啥新型社工攻击,问了开发者才知道是因为 Google Summer of Code,所以人们跑过来套磁。
定睛一看,果然 Zeno 在 Internet Archive 今年 Google Summer of Code 的预定范围内。
以前只说过但没了解过 GSoC ,它 FAQ 说,只要是18+在校生或者开源新手,就可以写份关于你想要做的项目的提案(proposal)申请参加。
然后再一瞅,什么,参加 GSoC 竟然有钱拿!如果人在中国,成功结项能拿到 3600$ 津贴(GSoC 根据各国的「人均平价购买力」来决定津贴数额,并设有上下限)。这下必须狠狠参加了。😂
于是我也交了份提案,内容主要是说做 Headless archiving、修 CSS parser、修现有 issue、写个类似 httpbin 的 dummy site 方便做 E2E 测试。
https://summerofcode.withgoogle.com/programs/2025/projects/afDanpOP
提交提案之后就是一个多月漫长的等待了,这期间也没完全闲着,糊了些PR。
GSoC 竞争还是挺激烈的,今年总共 13k 申请人,最终被接受的只有 1.2k。今年和我一同被入选 IA 的 GSoC contributor 只有 5 位。
这周联系上了我的 GSoC 项目导师,进了 IA 的 Slack 旁观了他们开周会,很酷,竟然看到了 Brewster Kahle 出现。🤩
又能做存档,又能线上观摩 IA,又能搓代码,还有米。接下来,就是要在这个暑假把提案给实现,通过中期和最终评估。
感谢 Google。虽然 Google 过去一年杀死了 goo.gl 短链、关闭了搜索快照。😅
感谢 Zeno 的开发者 CorentinB 。
感谢 @Ovler 检查我的 proposal 。
感谢 IA 。
这个夏天我们直接原地起飞。
Withgoogle
Google Summer of Code
Google Summer of Code is a global program focused on bringing more developers into open source software development.
Save The Web Project
画吧的域名 haowanlab.com 过期了,被阿里云拿去竞拍,最终成交价拍出了 5210 元。 这域名有这么值钱吗。我不理解,震撼。 有没有域名玩家给大家解释一下?
刚给画吧老板打了电话让他注意注销 ICP 备案以防域名被接盘侠滥用而背锅。
这应该是最后一次帮画吧了。
R.I.P.
R.I.P.
Save The Web Project
STWP 2025 第 19 周周报 本周的产量同样稀少,记一点流水账吧。 - 用 Go 重写了两年前写的 https://github.com/saveweb/fdroidswh 小玩意,用于跟踪 F-Droid Repo 的应用更新,将源代码仓库推送到 SWH 存档。 https://service-fdroidswh.saveweb.org/ - 响应了 6 个画吧备份导出请求。 - dokuwiki dumper 小重构 WIP: https://github.com/saveweb/dokuwiki…
STWP 2025 20 至 25 周,合并周报。
过去一个月是期末,没时间。现在好久没发周报了,快速过一下最近5周做了啥。主要做的事是 Zeno,没有开其它存档项目。
week 20-21 https://github.com/internetarchive/Zeno/pull/281 稍微重构 Zeno 处理对象存储的代码,添加解析 Azure Blob 的能力。 https://github.com/internetarchive/Zeno/pull/295 让 Zeno 终端输出的日志变彩色。
week 23
https://github.com/internetarchive/Zeno/pull/324 小小地引入标准 css 解析器,替换掉原本简陋的容易产生误报的正则提取方式。 (CSS 1/3)
week 24
None
week 25
- https://github.com/Crossbell-Box/xLog/pull/2230 前几周惊人地发现 xLog 上的一半的新文章是 spam,于是打标然后跑了个简单的 TF-IDF 分类器来识别 spam 账号。这周把识别结果人工检查了一下,把 spam 账号列表发给 xLog。
- https://github.com/internetarchive/Zeno/pull/339 支持提取 CSS 的 @import 链接。(CSS 2/3)
- https://github.com/internetarchive/Zeno/pull/345 完整支持解析 html 嵌入和引用的 css 资源。同时,发现上游的 css parser 不支持 CSS Nesting 和未适配“现代” css 语法。由于没有精力给上游修bug,因此写了个更鲁棒的正则来作为 parser 失败时的 fallback parser 当作 workaround。 (CSS 3/3)
- https://github.com/microsoft/vscode-css/pull/43 在 debug CSS 的过程中发现 VSC 自带的 CSS 高亮也没适配11年前的“新”语法标准。@overflowcat 得知后刷了一个 PR 。
- https://github.com/internetarchive/Zeno/pull/353 改善了对 GitHub Issue 页面的存档效果。
- 向 Zeno 添加 Headless/Headfull 存档功能(进行中)
这几周看 w3c 和 whatwg 都要看吐了,之后会发点关于 CSS、浏览器、URL、HTML、编码 之类的小故事。
过去一个月是期末,没时间。现在好久没发周报了,快速过一下最近5周做了啥。主要做的事是 Zeno,没有开其它存档项目。
week 20-21 https://github.com/internetarchive/Zeno/pull/281 稍微重构 Zeno 处理对象存储的代码,添加解析 Azure Blob 的能力。 https://github.com/internetarchive/Zeno/pull/295 让 Zeno 终端输出的日志变彩色。
week 23
https://github.com/internetarchive/Zeno/pull/324 小小地引入标准 css 解析器,替换掉原本简陋的容易产生误报的正则提取方式。 (CSS 1/3)
week 24
None
week 25
- https://github.com/Crossbell-Box/xLog/pull/2230 前几周惊人地发现 xLog 上的一半的新文章是 spam,于是打标然后跑了个简单的 TF-IDF 分类器来识别 spam 账号。这周把识别结果人工检查了一下,把 spam 账号列表发给 xLog。
- https://github.com/internetarchive/Zeno/pull/339 支持提取 CSS 的 @import 链接。(CSS 2/3)
- https://github.com/internetarchive/Zeno/pull/345 完整支持解析 html 嵌入和引用的 css 资源。同时,发现上游的 css parser 不支持 CSS Nesting 和未适配“现代” css 语法。由于没有精力给上游修bug,因此写了个更鲁棒的正则来作为 parser 失败时的 fallback parser 当作 workaround。 (CSS 3/3)
- https://github.com/microsoft/vscode-css/pull/43 在 debug CSS 的过程中发现 VSC 自带的 CSS 高亮也没适配11年前的“新”语法标准。@overflowcat 得知后刷了一个 PR 。
- https://github.com/internetarchive/Zeno/pull/353 改善了对 GitHub Issue 页面的存档效果。
- 向 Zeno 添加 Headless/Headfull 存档功能(进行中)
这几周看 w3c 和 whatwg 都要看吐了,之后会发点关于 CSS、浏览器、URL、HTML、编码 之类的小故事。
Save The Web Project
STWP 2025 20 至 25 周,合并周报。 过去一个月是期末,没时间。现在好久没发周报了,快速过一下最近5周做了啥。主要做的事是 Zeno,没有开其它存档项目。 week 20-21 https://github.com/internetarchive/Zeno/pull/281 稍微重构 Zeno 处理对象存储的代码,添加解析 Azure Blob 的能力。 https://github.com/internetarchive/Zeno/pull/295 让 Zeno 终端输出的日志变彩色。…
STWP 2025 26 周周报
还是全是 Zeno 。
- https://github.com/internetarchive/Zeno/pull/356 Headless/Headfull 存档 PR 发了,PR 仍在 WIP。(测试可以存档知乎专栏!)
- https://github.com/internetarchive/Zeno/pull/370 解析非 UTF-8 的 HTML,PR 仍在 WIP 。
- https://github.com/internetarchive/Zeno/pull/369 加了丢弃超过指定 payload 大小的响应的功能。
- https://github.com/internetarchive/gowarc/pull/115 主要是修了 gowarc 在上层的 HTTP TCP Conn 出现异常关闭时 (early EOF, io timeout, conn closed/reset),由于没有向下 .CloseWithError(),而是调用常规的 .Close(),导致下层的 MITM 套娃 HTTP TCP Conn 以为是正常 EOF,最终导致,对于没有 Content-Length 头的流式响应,这类 early EOF 的响应被当成正常响应而被写入了 WARC 存档中。(而对于更常见的非流式响应,由于存在 Content-Length,即使 early EOF 仍然被当成了正常 EOF,但是由于 go 的 http 标准库的 http.ReadRespon() 会用 io.LimitReader 来组装 Response.Body ,这样的 Response.Body 会自己做一次额外的 EOF 位置与 Content-Length 位置的匹配检查,如果不匹配会返回 early EOF。换句话说,这 BUG 在大部分情况下被标准库缓解了导致我们没发现。)。然后还修了 Conn.SetReadDeadline() 木有生效、临时文件泄漏的问题。
还是全是 Zeno 。
- https://github.com/internetarchive/Zeno/pull/356 Headless/Headfull 存档 PR 发了,PR 仍在 WIP。(测试可以存档知乎专栏!)
- https://github.com/internetarchive/Zeno/pull/370 解析非 UTF-8 的 HTML,PR 仍在 WIP 。
- https://github.com/internetarchive/Zeno/pull/369 加了丢弃超过指定 payload 大小的响应的功能。
- https://github.com/internetarchive/gowarc/pull/115 主要是修了 gowarc 在上层的 HTTP TCP Conn 出现异常关闭时 (early EOF, io timeout, conn closed/reset),由于没有向下 .CloseWithError(),而是调用常规的 .Close(),导致下层的 MITM 套娃 HTTP TCP Conn 以为是正常 EOF,最终导致,对于没有 Content-Length 头的流式响应,这类 early EOF 的响应被当成正常响应而被写入了 WARC 存档中。(而对于更常见的非流式响应,由于存在 Content-Length,即使 early EOF 仍然被当成了正常 EOF,但是由于 go 的 http 标准库的 http.ReadRespon() 会用 io.LimitReader 来组装 Response.Body ,这样的 Response.Body 会自己做一次额外的 EOF 位置与 Content-Length 位置的匹配检查,如果不匹配会返回 early EOF。换句话说,这 BUG 在大部分情况下被标准库缓解了导致我们没发现。)。然后还修了 Conn.SetReadDeadline() 木有生效、临时文件泄漏的问题。