どうも、こんにちは!いとらーです。
先日、Python勉強会をしていてサーバーを使ってSeleniumの定期実行ができなか?という話になりました。
私はサーバーはXserverをメインで使っています。
そこで、Xserverでは定期実行のためのcronが無制限に使えるので、これを使えばスクレイピングの定期実行ができるのではと考えました。
しかし、結論から言うとできませんでした。
それを今回はお話したいと思います。
Xserverではルート権限が与えられていない
公式でははっきりと書いてあるところがないので分かりにくいのですが、Xserverではルート権限が与えられていません。
なので、Googlechromeをインストールすることができません。
そのため、chromeを使ったseleniumを使うことができません。
もしも、Xserverでseleniumの定期実行を考えているのならXserverではできないので注意が必要です。
Xserverではchromeを使わないbeautifulsoupは利用できます。
しかし、beautifulsoupではjavascriptを使用した動的なページの解析には使えません。
スクレイピングしたいサイトは昨今では大抵の場合、動的なサイトになっているのでbeautifulsoupでは苦しいでしょう。やはりseleniumが必要になってきます。
なので、Xserverをseleinumをメインに使おうと考えている場合は辞めておいた方が無難です。
もっとも、Xserverはブログの運営やPHPの定期実行などにはとても便利なので、このような利用におけるスペックが劣っているという訳ではありません。むしろ、数あるレンタルサーバーの中でもトップクラスのスペックではないかなと思います。
他の代替手段
無料で使えるサーバーのherokuを使う
heroku(https://jp.heroku.com/)というサーバーの無料の範囲内で使うことができます。
海外のサーバーですが、pythonのseleniumを使うだけなら問題はないかと思います。
具体的な使い方についてはまた別の機会に説明したいと思います。
追記
herokuは最近(2022年冬)サービスが有料化されました。そのためherokuでは十分な利用ができなくなる可能性があります。
他にも無料のものはあるみたいですが外国のものが多いです。
この場合は以下のVPSサーバーを借りた方が早いかもしれません。
vpsを使う
他の代替手段としては、VPSという仮想専用サーバーを使う方法が考えられます。
VPSサーバーではルート権限が与えられ、自分で設計することができます。
逆に、知識やサーバーを運用する責任も伴います。
しかし、自由度は高いです。
今回のようなchromeを入れてseleniumを使ってスクレピングするということも可能です。
費用に関しても月に数百円しかかからないためXserverより安いです。
普通のレンタルサーバーと比べて多少知識が入りますが、Pythonの自動化を考えているような場合にはそれほど難しいことはないと思います。
VPSサーバーといえば、レンタルサーバーのカゴヤやさくらのVPSやConoHaVPSを使えば問題ないです。
サーバーの勉強をしながらPythonの自動化システムを構築するのはアリやと思います。
私は、さくらvpsとConoHaVPS、カゴヤの3つを使っていますが、この中ではさくらvpsが初心者には使いやすいと思います。
カゴヤは安いしサポートも丁寧ですが、初期段階で設定やダウンロードなどしないといけないことが多くて初心者にはちょっとしんどいかなぁと思います。
その点、さくらのVPSは、もちろん環境設定は必要になりますが、カゴヤよりかは使いやすいです。
なので、「Pythonに慣れていない」、「とりあえずPythonの自動化だけしたい」という場合さくらのVPSで良いと思います。
まとめ
いやぁ、xserverでseleniumが使えないのは非常に残念です。
確かに、xserverの売りはワードプレスを高速で使えるところでしょうから、管理権限を与えることまでは必要ではないのでしょう。ブログを書きたい人にとってはサーバー周りの設定などは煩わしいだけでしょうしね。ルート権限まで使う人も多くはないでしょうし。
プログラミングの勉強をメインに使いたいという人はVPSの方を検討した方が良さそうです。プログラミングにはサーバーの知識もある程度は必要ですし、こちらの方でサーバーの勉強をしながら使っていくのが一石二鳥といったところでしょうか。
コメント