以此题单为例,首先我们在浏览器中打开,F12 切换到 Console,输入 document.querySelectorAll(".title a")
,然后复制返回的所有内容,粘贴到 VSCode 里,内容大致如下:
NodeList(15) [ a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, … ]0: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2002" target="_blank" colorscheme="default" title="Hello,World!" data-v-b5709dda="">1: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2025" target="_blank" colorscheme="default" title="输出字符菱形" data-v-b5709dda="">2: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1000" target="_blank" colorscheme="default" title="超级玛丽游戏" data-v-b5709dda="">3: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1001" target="_blank" colorscheme="default" title="A+B Problem" data-v-b5709dda="">4: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2005" target="_blank" colorscheme="default" title="字符三角形" data-v-b5709dda="">5: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5703" target="_blank" colorscheme="default" title="【深基2.例5】苹果采购" data-v-b5709dda="">6: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5704" target="_blank" colorscheme="default" title="【深基2.例6】字母转换" data-v-b5709dda="">7: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5705" target="_blank" colorscheme="default" title="【深基2.例7】数字反转" data-v-b5709dda="">8: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5706" target="_blank" colorscheme="default" title="【深基2.例8】再分肥宅水" data-v-b5709dda="">9: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5708" target="_blank" colorscheme="default" title="【深基2.习2】三角形面积" data-v-b5709dda="">10: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5707" target="_blank" colorscheme="default" title="【深基2.例12】上学迟到" data-v-b5709dda="">11: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2029" target="_blank" colorscheme="default" title="大象喝水" data-v-b5709dda="">12: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1425" target="_blank" colorscheme="default" title="小鱼的游泳时间" data-v-b5709dda="">13: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1421" target="_blank" colorscheme="default" title="小玉买文具" data-v-b5709dda="">14: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P3954" target="_blank" colorscheme="default" title="[NOIP2017 普及组] 成绩" data-v-b5709dda="">length: 15<prototype>: NodeListPrototype { item: item(), keys: keys(), values: values(), … }
注意由于未知原因,一些浏览器 Console 复制出来的空行会有零宽字符(U+200B),这时候只需要光标放在空行处直接 Ctrl+F 搜索,如果搜到了说明有零宽字符,直接替换删除即可。
删掉首末无用的消息,只留下含有链接的行:
0: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2002" target="_blank" colorscheme="default" title="Hello,World!" data-v-b5709dda="">1: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2025" target="_blank" colorscheme="default" title="输出字符菱形" data-v-b5709dda="">2: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1000" target="_blank" colorscheme="default" title="超级玛丽游戏" data-v-b5709dda="">3: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1001" target="_blank" colorscheme="default" title="A+B Problem" data-v-b5709dda="">4: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2005" target="_blank" colorscheme="default" title="字符三角形" data-v-b5709dda="">5: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5703" target="_blank" colorscheme="default" title="【深基2.例5】苹果采购" data-v-b5709dda="">6: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5704" target="_blank" colorscheme="default" title="【深基2.例6】字母转换" data-v-b5709dda="">7: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5705" target="_blank" colorscheme="default" title="【深基2.例7】数字反转" data-v-b5709dda="">8: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5706" target="_blank" colorscheme="default" title="【深基2.例8】再分肥宅水" data-v-b5709dda="">9: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5708" target="_blank" colorscheme="default" title="【深基2.习2】三角形面积" data-v-b5709dda="">10: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5707" target="_blank" colorscheme="default" title="【深基2.例12】上学迟到" data-v-b5709dda="">11: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2029" target="_blank" colorscheme="default" title="大象喝水" data-v-b5709dda="">12: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1425" target="_blank" colorscheme="default" title="小鱼的游泳时间" data-v-b5709dda="">13: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1421" target="_blank" colorscheme="default" title="小玉买文具" data-v-b5709dda="">14: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P3954" target="_blank" colorscheme="default" title="[NOIP2017 普及组] 成绩" data-v-b5709dda="">
在 VSCode 中(或者其他正则表达式工具)进行替换操作:
查找
.*href="/problem/([A-Z][0-9]+)" target="_blank" colorscheme="default" title="(.*)" .*
替换为
- [$1 $2](https://www.luogu.com.cn/problem/$1)
接下来就大功告成:
- [B2002 Hello,World!](https://www.luogu.com.cn/problem/B2002)- [B2025 输出字符菱形](https://www.luogu.com.cn/problem/B2025)- [P1000 超级玛丽游戏](https://www.luogu.com.cn/problem/P1000)- [P1001 A+B Problem](https://www.luogu.com.cn/problem/P1001)- [B2005 字符三角形](https://www.luogu.com.cn/problem/B2005)- [P5703 【深基2.例5】苹果采购](https://www.luogu.com.cn/problem/P5703)- [P5704 【深基2.例6】字母转换](https://www.luogu.com.cn/problem/P5704)- [P5705 【深基2.例7】数字反转](https://www.luogu.com.cn/problem/P5705)- [P5706 【深基2.例8】再分肥宅水](https://www.luogu.com.cn/problem/P5706)- [P5708 【深基2.习2】三角形面积](https://www.luogu.com.cn/problem/P5708)- [P5707 【深基2.例12】上学迟到](https://www.luogu.com.cn/problem/P5707)- [B2029 大象喝水](https://www.luogu.com.cn/problem/B2029)- [P1425 小鱼的游泳时间](https://www.luogu.com.cn/problem/P1425)- [P1421 小玉买文具](https://www.luogu.com.cn/problem/P1421)- [P3954 [NOIP2017 普及组] 成绩](https://www.luogu.com.cn/problem/P3954)
效果:
-
B2002 Hello,World!
-
B2025 输出字符菱形
-
P1000 超级玛丽游戏
-
P1001 A+B Problem
-
B2005 字符三角形
-
P5703 【深基2.例5】苹果采购
-
P5704 【深基2.例6】字母转换
-
P5705 【深基2.例7】数字反转
-
P5706 【深基2.例8】再分肥宅水
-
P5708 【深基2.习2】三角形面积
-
P5707 【深基2.例12】上学迟到
-
B2029 大象喝水
-
P1425 小鱼的游泳时间
-
P1421 小玉买文具
-
P3954 [NOIP2017 普及组] 成绩
之后也可以用 Python 写个工具使其更加自动化。