LoginSignup
5

More than 5 years have passed since last update.

Cloud9上でクローラーを作るための環境構築

Last updated at Posted at 2017-05-14

概要

Cloud9上にクローラーを作る環境を構築しました。
作った環境は以下の通りです。
(2017/9/26時点)

  • Ubuntu 14.04(OSはCloud9で設定されます)
  • Python 3.5.2
  • Scrapy 1.3.3
  • Selenium 3.4.1
  • beautifulsoup 4.6.0
  • lxml 3.7.3
  • phantomjs 2.1.7

やったことを簡単に以下に記載します。

  • Cloud9のアカウント登録
  • Pythonのバージョンアップ
  • Scrapyインストール
  • Seleniumインストール
  • Beautiful Soupインストール
  • phantomjsインストール

Cloud9のアカウント登録

詳しく解説しているサイトがあるので省略。
Workspaceを「Blank」で作ると、Python3系のバージョンが「3.4」だったので、
「Blank」ではなく「Python」としました。

Pythonのバージョンアップ

まずはPythonのバージョンを2.7から3.5.2にします。
バージョンアップについては以下の記事を参考にしました。

若干、手順と違ったのは、権限関係で「sudo」つけないといけないくらいです。
「/usr/bin/」配下のファイルを見ると、Python3.6はないみたいですね。
(Cloud9の環境がUbuntu14.04なんだけど、Python3.6に対応してないのかな。)

Scrapyのインストール

ここでハマりました。ハマることなんてないと思っていたので誤算でした。
pipでscrapyをインストールしようとすると正常に完了しませんでした。
その後、pipが壊れてしまい、pipコマンドを打つと以下のようなエラーが出るようになってしまいました。

Traceback (most recent call last):
  File "/usr/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python3.5/dist-packages/pkg_resources/__init__.py", line 72, in <module>
    import packaging.requirements
  File "/usr/local/lib/python3.5/dist-packages/packaging/requirements.py", line 59, in <module>
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() missing 1 required positional argument: 'name'

2個目のエラーの原因が「appdirsがないよ」ということだったので、
Scrapyのインストール前に「appdirs」をインストールしておきました。
なぜかそれだけでもダメで、事前に「lxml」も入れておくとうまくいきました。

$ sudo pip install appdirs
$ sudo pip install lxml
$ sudo pip install scrapy

上記の順番でコマンド打てば無事にインストールできました。

インストール済のパッケージをチェックしましたが、「appdirs」「lxml」しか増えなかったので、これらが影響してたと思います。
pipよりanacondaをオススメしている記事を見かけるので、anacondaについても調べておこうと思います。

Seleniumのインストール

$ sudo pip install selenium

ちゃんとインストールされたか確認。

$ pip show selenium

上記のコマンドを打つと、以下のようになります。
ちゃんとpython3.5配下にインストールされているのでOK。

---
Name: selenium
Version: 3.4.1
Location: /usr/local/lib/python3.5/dist-packages
Requires: 

Beautiful Soupのインストール

$ sudo pip install beautifulsoup4

こちらも同様に以下のコマンドを打ちます。

$ pip show beautifulsoup4

すると、

---
Name: beautifulsoup4
Version: 4.6.0
Location: /usr/local/lib/python3.5/dist-packages
Requires:

となり問題ないことが確認できました。

phantomjsのインストール

$ sudo npm install -g phantomjs

以上

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5