如何复制网页上的任何内容(比如百度文库)

目的

许多网页都不允许复制,只有进行开通VIP,注册用户,使用专业工具等才能完成ctrl+c和ctrl+v等简单操作。本文提供了一种比较简(cu)单(bao)的解决方案。

注意!

这篇文章话很直(bie)率(niu)!也不一定有效!甚至可能产生失误!请谨慎阅读!

原理(大神请略过)

Web页面的结构是基于DOM树的。Web的内容会在DOM节点上体现。只要复制DOM节点上的内容,就可以获取页面上呈现的内容了。此外,一般的禁止复制都是用Javascript/CSS实现一些DOM属性的控制,或者对copy事件的监听。这可以有效地防止对web内容的直接复制,但不影响对部分DOM源代码的阅读。我们只要从这些DOM源代码里提取文字内容,即可。

举例(百度文库)

在这里插入图片描述我们先选择需要复制的内容,然后右键弹出菜单。
在这里插入图片描述这里以Firefox 72 英文版为例,选择“View Selection Source“(查看选择的源码)。会弹出一个代码窗口。
在这里插入图片描述Firefox已经帮我们将选择的文字选择了。即:

<p class="reader-word-layer reader-word-s2-15 reader-word-s2-16" style="width:4280px;height:180px;line-height:180px;top:2498px;left:2509px;z-index:201;letter-spacing:-0.38px;false">http://192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1</p>

整理(为了方便阅读,实际操作可省略),即:

<p class="reader-word-layer reader-word-s2-15 reader-word-s2-16"
style="width:4280px;height:180px;line-height:180px;top:2498px;left:2509px;z-index:201;letter-spacing:-0.38px;false">
	http://192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1
</p>

复制上图<p> ... </p>标签中的文字即可。得到:

http://192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1

其他页面依次类推。

拓广

实际应用中,可以编写一个脚本之类的方便复制,直接View page source将所有的DOM code作为输入然后输出纯文本内容。

发布了6 篇原创文章 · 获赞 0 · 访问量 64

猜你喜欢

转载自blog.csdn.net/weixin_40732417/article/details/104451202