概要
ウェブ上から特定のデータを集めて分析する方法に興味があり、勉強をはじめました。
今後、数回に渡ってWeb Scrapingの勉強記録を書いていきたいと思っています。
注意事項
この投稿は単純な勉強の記録です。私はWeb Scrapingに経験がないですから、間違ったことをやる可能性も高いと思います。その時はコメントで教えていただけると幸いです。
今後の流れ
- 環境構築
- Web Scrapingの基礎
- Web Scrapingのプロトタイプ作成
- 定期的にScraping
- クラウド上にサーバ構築
- 本稼働
環境構築
今回はDockerを活用し開発を行います。Dockerを活用することで今後、クラウド上のdeployが楽になると考えています。ちなみに、Dockerも初心者なので何か間違ったところがありましたら教えてください。
Dockerfile
今回作ったDockerfileは下記の通りです。
FROM ubuntu:18.04
LABEL maintainer="Suckgeun Lee <leesuckgeun@gmail.com>"
# 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の基礎を勉強します