

【やりたいこと】便利なライブラリを使用してスクレイピングしてみたい!
前回は、ライブラリを使用して、Webページを取得しました。
今回は、スクレイピングを便利なライブラリを使用して、行ってみましょう。
【10分でできる】lxmlとcssselectを使用
※ダウンロード時間は10分の中に含まれていません。
0.概要
lxmlとcssselectをインストールします。次に、Webページを取得・保存します。最後にサンプルコードを実行し、WebページのURLとリンクのテキストを表示させます。
1.使用したもの
・Virtual box
・Vagrant

・Term Term

・Python3.4
・lxml
・cssselect
2.手順
※下記の記事の内容を完了しているものとして、進めていきます。


①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クローリング&スクレイピング」のサンプルコードscrape_by_lxml.pyを使用します。
上記のコードでは、正規表現ではなく、cssselectで抜き出す文字列を指定しています。
スクリプトファイルを実行します。
python scrape_by_lxml.py
上記を実行することで、a要素のURLとリンクのテキストが表示されました。
テキストが存在しないところは、Noneと表示されています。
【最後に】参考図書の紹介
以下の書籍は、私がPythonスクレイピングを勉強するにあたって、使用した書籍です。
「Python逆引き大全」は、秀和システムの技術書読み放題サービス「10×Eng」で読めます。最初の2週間は無料、それ以降は、月額900円で利用できます。
「プログラミング超初心者が初心者になるためのPython入門」はkindle unlimitedで読めます。
コメント