平常学习或是工作需要,我们会想要复制网页上的文字内容,但是现在的网页非常不单纯,我简单列举几个我遇到的网页,当我看中了网页上的内容,想要复制其内容的时候,各种二维码,VIP的限制页面便会弹出,而这些无一例外地对我们充分利用网络资源形成了限制,造成了困扰。
那么如何解决这个问题呢,我还是使用Python来帮忙,你可能会提及爬虫,因为我们的应用场景是复制少量文字到自己的电脑上,没有必要大张旗鼓地写出爬虫,况且这些资源并非来源于同一网站,爬取难度也很难说得清楚。
我这有两种方法。
其一,观察需要复制的网站的页面源代码,如果所需要复制内容的就在源代码之中,我们可以使用正则表达式将所需复制的内容完整地提取。
比如上面这样的情况,我们需要复制的内容就在源代码之中,其中夹杂了部分html的标签,这里使用反向的思维,我们不用正则提取所有汉字(我也尝试了一下,但效果不佳),而是使用正则将这些标签去除。
pattern=re.compile("<(.*?)>")
a=re.sub(pattern,"",string)
可见所有需要复制的内容已经舒服地躺在剪切板上了,任我们鱼肉。
但在一部分网页上,我们想要复制地内容不存在于网页源代码中,分析起来可能较为复杂。
因而就有了方法二,将所需复制的内容部分截图,使用OCR将图片中的所有文字识别出来。
比如我们想复制上面这部分文字,直接使用tesserocr是否可行呢?当然可行,只是我们需要额外下载中文的语言包,在代码中作一些小小的改变。
image=Image.open(img)
result=tesserocr.image_to_text(image,lang="chi_sim")
同样可以得到不错的效果,这两种方法都只使用了极其少量的代码,就解决了在网页上复制文字的困境,希望对大家有些许帮助。
————————————————