tgoop.com/saveweb/460
Last Update:
STWP 2025 第 9 周周报
- 存 zhubai @yzqzss
- biliarchiver 加了个 clean 子命令 @Ovler
STWP 2025 第 10 周周报
- day1: 写了个能将就工作的 CrawlHQ 实现
https://github.com/saveweb/altcrawlhq_server
- day2: 部分梳理了 Zeno v2 的框架设计
- day3: 开始给 Zeno V2 写 local queue
- day4: 写完了,微调,测试,发 PR: https://github.com/internetarchive/Zeno/pull/243
- day5: 之前注意到 Zeno 存新世界的大门 (https://blog.xinshijiededa.men) 会解析出一堆不存在的 url assets。
发现是因为 inline css url() 解析是简单正则提取,只是简单地把所有 html style 属性里的 () 括号里的东西当成 url 提取出来,于是把 css 中的函数 tokens (如 rgb() )也提取出来了。
看了 https://www.w3.org/TR/css-values-4/ 和 https://www.w3.org/TR/css-syntax-3/ ,css 里 url()、src() 和 @import <string> 都能用来发网络请求。
src() 现在还没有被任何浏览器实现,可以直接忽略。( https://cssdb.org/#src-function )
url() 分 unquoted/quoted 两种,解析方法不同,都有自己的转义规则。
然后在 github 上搜了下 /url =.*getPropertyValue\(/ AND (language:JavaScript OR language:TypeScript OR language:HTML),发现一堆往 css 里存自定义的 <string> url,然后在 js 里取值的代码。这种迷惑行为广泛存在,所以我觉得那些以 https?://|// 开头的 <string> 也有解析价值。
综上,用简单的正则提取 css 里的外链可能不太合适。
但目前 golang 这边的 css parser 库们都没做 url/string value 实际内容值的细提取,都是 lexer/tokenizer 粗切片的库,不太能用。
那么之后的计划就是写个小 parser,把粗的 <url> 和 <string> token 解析出实际值。然后和现有的粗 parser 拼一起就行了。
- day6: 一点微调,PR 合进去了。
- day7: 无。
BY Save The Web Project

Share with your friend now:
tgoop.com/saveweb/460