【勉強ノート】ウェブサイトからデータ収集のための 環境構築


概要

ウェブ上から特定のデータを集めて分析する方法に興味があり、勉強をはじめました。
今後、数回に渡ってWeb Scrapingの勉強記録を書いていきたいと思っています。

注意事項

この投稿は単純な勉強の記録です。私はWeb Scrapingに経験がないですから、間違ったことをやる可能性も高いと思います。その時はコメントで教えていただけると幸いです。

今後の流れ

  1. 環境構築
  2. Web Scrapingの基礎
  3. Web Scrapingのプロトタイプ作成
  4. 定期的にScraping
  5. クラウド上にサーバ構築
  6. 本稼働

環境構築

今回はDockerを活用し開発を行います。Dockerを活用することで今後、クラウド上のdeployが楽になると考えています。ちなみに、Dockerも初心者なので何か間違ったところがありましたら教えてください。

Dockerfile

今回作ったDockerfileは下記の通りです。

FROM ubuntu:18.04 

LABEL maintainer="Suckgeun Lee <[email protected]>"

# install basic packages 
RUN apt-get update \
    && \
    apt-get upgrade -y \
    && \ 
    apt-get install -y \
        python3.7 \
        python3-pip \
        git \
        unzip \
        vim \
        software-properties-common \
        locales \
        locales-all 

# install basic python packages
RUN pip3 install \
        h5py \
        ipykernel \
        jupyter \
        matplotlib \
        numpy \
        pandas \
        scipy \
        sklearn

# install Scrapy related packages
RUN pip3 install \
        lxml \
        parsel \
        w3lib \
        twisted \
        cryptography \
        pyOpenSSL \
        Scrapy \
    && \
    python3 -m ipykernel.kernelspec

ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8

WORKDIR /app

# Ipython
EXPOSE 8890

ご覧の通り、Scrapyをインストールしています。Web Scrapingを行うために私はScrapyを使用します。

docker image の作成

このDockerfileで docker imageを作成します。

leesuckgeun$ docker build -t scrapy_image:v0 . 

docker container の作成

作ったイメージでcontainerを作成します。

leesuckgeun$ docker run -it --name scrapy_practice scrapy_image:v0 /bin/bash

docker imageとcontainerを作る詳細は省略します。上記のコマンドで一応作成できます。

動作確認

docker containerにて scrapy と入力すると

docker$ scrapy
Scrapy 1.5.0 - no active project

Usage:
  scrapy <command> [options] [args]

Available commands:
  bench         Run quick benchmark test
  fetch         Fetch a URL using the Scrapy downloader
  genspider     Generate new spider using pre-defined templates
  runspider     Run a self-contained spider (without creating a project)
  settings      Get settings values
  shell         Interactive scraping console
  startproject  Create new project
  version       Print Scrapy version
  view          Open URL in browser, as seen by Scrapy

  [ more ]      More commands available when run from project directory

Use "scrapy <command> -h" to see more info about a command

Scrapyがちゃんと起動していることが分かります。

最後に

これで環境構築が終わりました。
pythonでWeb Scrapingをするには色々あるらしいですが、一番有名そうだったScrapyを選ぶことにしました。今回作成したDockerfileで勉強を続けていきますが、足りないものは徐々に追加していきたいと思います。

次回はScrapyの基礎を勉強します