Python + PhantomJSを使ったWebスクレイピング ①環境構築
概要
とある仕事でpython
でWebスクレイピング用のスクリプトを作ることになり、pip
を初めて触ることになったので備忘録としてまとめます。
手順
前提
AWS EC2
-
python
2.7.6インストール済み
- 細かい設定は今回は端折るので基本、
sudo
コマンドで実行します
- 作業は~(ホーム)で実行
-
PhantomJS
を利用
pipのインストール
ダウンロード
AWS EC2
python
2.7.6インストール済みsudo
コマンドで実行しますPhantomJS
を利用以下のコマンドでpip
インストール用のpython
ファイルをダウンロードします。
wget "https://bootstrap.pypa.io/get-pip.py"
ダウンロードしたファイルを実行します。
sudo python get-pip.py
※以下のワンライナーでも同様にインストール可能です。
curl -kL https://bootstrap.pypa.io/get-pip.py | python
確認
以下のコマンドでバージョン情報が表示されればインストール完了です。
pip --version
使い方
今回はpip
にてselenium
をインストールして使ってみます。
エラー回避
しかし、今のままでは以下のコマンドでinstallしようとすると、エラーが出ます。
sudo pip install selenium
これはインストール先のusr/local/bin
が$PATH
に含まれていないので、pip
コマンドが認識されていません。
$PATHに追加することで対処可能ですが、今回は以下のコマンドで物理的に移動して対処します。
sudo cp /usr/local/bin/pip /usr/sbin/
確認
これでもう一度以下のコマンドを実行すると、正常にインストールが完了します。
sudo pip install selenium
実装
以下のコードを適当なファイルに記述してください。
from selenium import webdriver
import time
browser = webdriver.PhantomJS()
url = "http://google.com"
browser.get(url)
time.sleep(3)
print(browser.title)
そして、以下のコマンドで実行
python sample.py
しかし、以下のようなエラーが表示されます。
[ec2-user@adminserver sample]$ python sample.py
Traceback (most recent call last):
File "sample.py", line 4, in <module>
browser = webdriver.PhantomJS()
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 52, in __init__
self.service.start()
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 81, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH.
これはPhantomJS
自体がインストールされていないのが原因かと思われるので、別途PhantomJS
もインストールする必要があります。
PhantomJSのインストール
基本的には以下のコマンドを順番に流すことでインストールは完了します。
yum関連のインストール
sudo yum install fontconfig freetype freetype-devel fontconfig-devel libstdc++
圧縮ファイルの取得
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
解凍
bzip2 -d phantomjs-2.1.1-linux-x86_64.tar.bz2
sudo tar -xvf phantomjs-2.1.1-linux-x86_64.tar
シンボリックリンクの作成
sudo ln -sf ~/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/phantomjs
確認
phantomjs -v
もう一度、以下のコマンドを実行
python sample.py
無事に取れましたね!!
終わりに
これでpython
+ PhantomJS
でのスクレイピングの準備は出来たので、あとはガリガリコーディングをしていくだけですね♪
快適なスクレイピング生活を!
Author And Source
この問題について(Python + PhantomJSを使ったWebスクレイピング ①環境構築), 我々は、より多くの情報をここで見つけました https://qiita.com/bakira/items/8951aedc0b6bf4412c06著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .