【Python】sudo権限のないLinuxサーバーでwebスクレイピング環境構築

今回は、sudo権限のないレンタルサーバーでpythonによるwebスクレイピング環境構築です。
GUI環境ではないので、javascriptページも読み込めるようにヘッドレスブラウザのPhantomJSを使います。

■環境
・conohaサーバー(conoha wingのベーシックプラン※一番下のやつ)
・python

■ライブラリー
BeautifulSoup:スクレイピングライブラリ
PhantomJS:ヘッドレスブラウザ
Selenium:ブラウザの自動操作を行うツール

1.PhantomJSのインストール

conohaにログイン、まずは適当なフォルダを作成して、phantomJSをダウンロードして解凍
phantomJSの最新版のURLはここから。Linux 64-bitを選択。
https://phantomjs.org/download.html

$ mkdir pythonlibrary

$ cd pythonlibrary/

$ wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2

$ tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2

$ mv phantomjs-2.1.1-linux-x86_64 phantomjs

パスを通す

$ echo 'export PATH=/home/c●●●/pythonlibrary/phantomjs/bin:$PATH' >> ~/.bash_profile

$ source ~/.bash_profile

$ echo $PATH

phantomJSのバージョン確認ができていたら成功

$ phantomjs -v
  2.1.1

2. ライブラリー置き場を作成して、各ライブラリーインストール

デフォルトでpip install すると、権限がない場所を参照するのでエラーになってしまう。
権限配下を参照するように設定。

PYTHONPATHの設定。さっき作ったフォルダにパス通す。これでimportでデフォルトで参照される

$ echo 'export PYTHONPATH=/home/c●●/pythonlibrary:$PYTHONPATH' >> ~/.bash_profile

$ source ~/.bash_profile

必要なライブラリーのインストール。フォルダ指定をする。

$ pip install selenium -t ~/pythonlibrary
$ pip install lxml -t ~/pythonlibrary/
$ pip install beautifulsoup4 -t ~/pythonlibrary/

3. 試しにwebスクレイピング

#!/usr/bin/env python
# coding: utf-8

from pprint import pprint
from selenium import webdriver
from bs4 import BeautifulSoup
import time


driver = webdriver.PhantomJS()
driver.get("https://www.google.co.jp/")
time.sleep(2)

soup = BeautifulSoup( driver.page_source, 'lxml')
pprint(soup)

4. 文字コードエラーになった場合

'ascii' codec can't encode characters

日本語が書かれたページを出力するときはエラーになります。
下記で解決。

$ echo 'export PYTHONIOENCODING=utf-8' >> ~/.bash_profile

$ source ~/.bash_profile

おすすめ

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください