一日一技:如何使用JavaScript移除少数派的付费内容

少数派(https://sspai.com/)是一个以生产力、效率工具为主要内容的数字消费指南平台。由于网站需要盈利,所以他们在网站上有所克制地增加了一些付费内容。如下图所示。

这种付费文章点进去以后,只能看到前几段,然后就需要购买会员才能正常阅读。

作为一个网站需要盈利,因此开设付费内容无可厚非。奈何少数派的付费内容对我毫无吸引力,因此我不希望每次都在首页上看到这些付费文章。

从网页上删除这些付费内容的原理非常简单,在网页上右键,点击“检查”,打开Chrome的开发者工具,如下图所示。

点击箭头所指向的图标,如下图所示:

然后在网页上任意选中一个付费内容,此时开发者工具里面将会自动变成下图所示的样子:

其中方框框住的这个img标签对应了付费内容这个小图标,因此我们可以使用这个标签来进行定位。

现在视线在HTML代码区域往上走,可以看到dl标签

每一个文章块就对应一个dl标签。如果我们在上面右键删除这个标签,就会发现对应的付费条目不见了,如下图所示:

但这种做法每次只能删除一条付费内容,有没有办法把所有付费内容全部删除呢?答案就是使用JavaScript:

1
2
3
4
5
6
7
8
9
var pay_tag_list = document.getElementsByClassName('series-logo')

while(pay_tag_list.length > 0){
pay_tag = pay_tag_list[0]
dl_tag = pay_tag.parentNode.parentNode.parentNode
div_tag = dl_tag.parentNode
div_tag.removeChild(dl_tag)
pay_tag_list = document.getElementsByClassName('series-logo')
}

复制上面这一段代码到开发者工具的Console标签页并粘贴,敲下回车键,付费内容就消失了,如下图所示。