ブログやホームページのコピー防止、コピペ禁止を解除する簡単な方法
2016/10/27
他人のブログとかホームページを読んでいると、いいことが書かれてあったりするので、それのテキストをコピーしてメモしたり引用したりしたい場合があります。
しかしながら、ごく稀に、コピペ対策が施されていてコピーできない場合があります。
そういった場合でもコピーペーストできるようにする簡単な対策を3つほど以下に列挙します。
スマホでコピペしてパソコン側に送る
概ね、ブログ等のサイトのコピペ対策は、Javascriptなどを使って右クリックやドラッグを禁止している場合が多いです。
しかしながら、そういった場合でも、スマホ専用のサイトではコピーガードの対策が行われていない場合があります。
なので、パソコンでネットサーフィンしていて「このサイトはコピーできないわ」と思った場合には、iPhone等のスマホやiPad等のタブレットでスマホ専用サイトを覗いてみて、テキストをコピーできるかどうかを試して見る価値はあります。
Pythonでソースコードごとスクレイピングして抜き出す
上記の通り、コピーガードはJavaScriptでなされている場合がほとんどです。
ワードプレスのブログでは、「WP Copy Protect」のプラグインを導入しているなど。
そういう場合にはコピーガードを無効化する、すなわち読み手のブラウザ側からJavaScriptでコピーガード解除、回避のコードを打ち込んでやれば解除できるのですが、以下2つでは、Webプログラミングを使ったスクレイピングでソースコードごと引っこ抜く方法を紹介します。
ブラウザ上で右クリックの禁止がなされていた場合にはソースコードを表示するのも不可能ですが、ツールでWebスクレイピングをしてやれば、テキストをダウンロードしてくることが可能です。
いちいちプログラミングの実行ソフトを立ち上げないといけないのですが、コードを保存しておけばいつでも流用が可能だし、python等のプログラミング実行環境を利用するのはブログ運営にもいろいろ便利なので、触っておくといいと思います。
手軽なのはPython。
Windowsであればコマンドプロンプトで、Macならターミナルで短いコマンドを打ち込んでやるだけで、ソースコードを持ってくることが可能です。
以下はMacの場合で書きます。
MacではPython2がデフォルトで入っていますが、新しいPython3を、以下のコマンドをターミナルで打ち込んでダウンロードしておくといいと思います。
$ python3
さらに、いろいろと便利なbuautifulsoup4のライブラリを以下のコードをターミナルで実行して入手。
$ pip3 install beautifulsoup4
そして以下を一行ずつ実行していってください。
$ import urllib.request $ from bs4 import BeautifulSoup $ req = urllib.request.urlopen("http://****.com") $ source = BeautifulSoup(req,"html.parser") $ print(source.text)
そうすれば、以下のようにターミナル上に目的のサイトのテキストが表示されるので、所望の部分をコピペしてメモするなり引用するなり活用ができます。
(画像は当ブログの記事から抜いたもの)
Swiftでソースコードごとスクレイピングして抜き出す
Macであれば、同様に無料で入手出来るxcodeの環境を使ってスクレイピングができます。
Xcodeを開いて「Single View」でプロジェクトを開始。
「ViewController.swift」のファイルに以下を入力して実行するだけ。
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //URLオブジェクト作成 let url = NSURL(string: "https://***.com") //通信用オブジェクト作成 let urlSession = NSURLSession.sharedSession() //テキストダウンロードのタスク作成(テキスト読み込みが終了後にonFinishを実行) let task = urlSession.dataTaskWithURL(url!, completionHandler: onFinish) //タスク実行 task.resume() } //テキストダウンロード完了後に実行 func onFinish(data: NSData?, res: NSURLResponse?, error: NSError?){ if let nsstr = NSString(data: data!, encoding: NSUTF8StringEncoding){ let str = String(nsstr) print(str)//テキストがデバッグエリアに表示される } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
これによって、ソースコードがデバッグエリアに表示されるので、そこから目的のテキストをコピーすればOKです。
ただし、Xcodeでのスクレイピングの場合、セキュリティー的に怪しいところにはアクセスができません。
具体的には、「https://」で始まるurlのサイトでないと接続ができず、「http://」のサイトは拒否されるので注意です。
そうなると、結構まだまだhttpsを導入してないサイトが多いので、使いにくいかもしれません。
Pythonの方が便利そうです。
著作権に注意
コピーペーストして自分のためだけに保存しておくならいいのですが、それを流用して新しいコンテンツを作って公開するような場合には、当然のことながら著作権に気をつけてください。