スクレイピングをXserver上で頑張ろうともがいたが、結局Xserverでは無理なことがわかった。技術的なことに時間を費やしても仕方ないので、とりあえず、別サーバーを検討して諦めることにした。
では、Xserverのwordpressでpythonを実行させるにはどうしたらいいのか?
ショートコードという方法を使います。
■phpファイル (外観⇒テーマの編集⇒function.phpを編集。最終行がいいでしょう。)
<?php // file name: call_python.php $fullPath ='python ./cgi-bin/call_from_php.py abcd'; exec($fullPath, $outpara); var_dump($outpara[0]); ?>
■pythonファイル( ファイル名:call_from_php.py)
import sys if __name__=='__main__': print 'parameter1 is ' + sys.argv[1]
一応行きました。。
■出力結果
parameter1 is abcd
が!!!
複数業にわたってテストすると、驚くべきことにphpの出力結果が、1行目にきて、その後に文章の投稿内容がきます。これを修正するためには、phpファイルの中の投稿を以下の関数を追加します。
function my_shortcode() { ob_start(); ここにHTMLコードを書く return ob_get_clean(); }
これで一応適切な場所に吐き出されると思います。