【スクレイピング】lxmlとcssselectを使用したスクレイピング

スクレイピング
スクレイピング準備記事

【やりたいこと】便利なライブラリを使用してスクレイピングしてみたい!

前回は、ライブラリを使用して、Webページを取得しました。

今回は、スクレイピングを便利なライブラリを使用して、行ってみましょう。

 

【10分でできる】lxmlとcssselectを使用

※ダウンロード時間は10分の中に含まれていません。

0.概要

lxmlcssselectをインストールします。次に、Webページを取得・保存します。最後にサンプルコードを実行し、WebページのURLとリンクのテキストを表示させます。

1.使用したもの

・Virtual box

Oracle VM VirtualBox

・Vagrant

Vagrant by HashiCorp
Vagrant enables users to create and configure lightweight, reproducible, and portable development environments.

・Term Term

Tera Term (テラターム) プロジェクト日本語トップページ - OSDN
Tera Term は、オリジナルの Tera Term Pro 2.3 の原作者公認の後継版です。オープンソースで開発されており、UTF-8 表示に対応しています。 また、SSH1 対応モジュール TTSSH を拡張し、SSH2 プロトコルをサポートしています。

・Python3.4

・lxml

cssselect

2.手順

※下記の記事の内容を完了しているものとして、進めていきます。

【スクレイピング】仮想マシンの起動
【やりたいこと】仮想マシンを起動させたい! 今回は、初めてのスクレイピング記事になります。 スクレイピング記事の大まかな流れとしては、 仮想マシンを構築→スクレイピング 以上の流れで進めていきます。 今回は、1記事...
【スクレイピング】仮想マシンでPythonスクリプトファイルの実行
【やりたいこと】Pythonスクリプトファイルを仮想マシンで実行させたい! 前回の記事「【スクレイピング】仮想マシンの起動」の続きです。 ホストOSでPythonスクリプトファイルを実行するには、そのファイルがあるフォルダに...

①lxmlとcssselectのインストール

sudo apt-get install -y libxml2-dev libxslt-dev libpython3-dev zlib1g-dev

lxmlとcssselectのインストール前に、上記を実行しましょう。

pip install lxml

上記を入力し、実行することで、lxmlをインストールしましょう。

pip install cssselect

上記を入力し、実行することで、cssselectをインストールしましょう。

②Webページの取得と保存

wget <取得したいWebページのURL>

上記を実行することで、index.htmlというファイルが共有フォルダに作成されます。

共有フォルダを確認すると、index.htmlが保存されていることが分かります。

③Pythonスクリプトファイルの実行

import lxml.html

# HTMLファイルを読み込み、getroot()メソッドでHtmlElementオブジェクトを得る。
tree = lxml.html.parse('index.html')
html = tree.getroot()

# cssselect()メソッドでa要素のリストを取得して、個々のa要素に対して処理を行う。
for a in html.cssselect('a'):
# href属性とリンクのテキストを取得して表示する。
print(a.get('href'), a.text)

Pythonクローリング&スクレイピング

「Pythonクローリング&スクレイピング」のサンプルコードscrape_by_lxml.pyを使用します。

上記のコードでは、正規表現ではなく、cssselectで抜き出す文字列を指定しています。


スクリプトファイルを実行します。

python scrape_by_lxml.py

上記を実行することで、a要素のURLとリンクのテキストが表示されました。

テキストが存在しないところは、Noneと表示されています。

【最後に】参考図書の紹介

以下の書籍は、私がPythonスクレイピングを勉強するにあたって、使用した書籍です。

「Python逆引き大全」は、秀和システムの技術書読み放題サービス「10×Eng」で読めます。最初の2週間は無料、それ以降は、月額900円で利用できます。

「プログラミング超初心者が初心者になるためのPython入門」はkindle unlimitedで読めます。

 

コメント

タイトルとURLをコピーしました