プログラミング言語「Python」でWebクローリング・スクレイピングに使えるライブラリ・モジュール比較を紹介します。
目次
Python クローリング・スクレイピングのライブラリ・モジュール比較
urllib.request
URLを開くためのPython標準モジュール
urllib.requestは、URLを開くためのPython標準モジュールです。
requests
http://docs.python-requests.org/en/latest/
Web上のデータを取得できるライブラリ
Requestsは、Web上のデータを取得できるライブラリです。
↓パッケージ管理ツールpipでインストールするコマンド
$ pip install requests
↓ヤフーニュースからデータ取得し出力するサンプル
#requests読み込み
import requests
url = "https://news.yahoo.co.jp/"
r = requests.get(url)
print(r.text)
Python HTTPライブラリ「Requests」の使い方
BeautifulSoup4
https://www.crummy.com/software/BeautifulSoup/
大規模なクローリングスクレイピングに
BeautifulSoupは、取得したHTMLデータを加工できるライブラリです。
# Beautiful Soupのインポート
from bs4 import BeautifulSoup
html.parser
標準ライブラリ
lxml
機能豊富で高速
aiohttp
多数のWebサイトを高速クローリング
scrapelib
Scrapy
豊富な機能を備えた総合的型フレームワーク
対応;Python2/3
- Webページからリンク抽出
- robots. txt で拒否されているページのクロール防止
- XMLサイトマップの取得とリンクの抽出
- ドメイン、IP アドレスごとのクロール時間間隔の調整
- 複数のクロール先の並行処理
- 重複するURLのクロール防止
- エラー時のリトライ、回数制限設定
- クローラーのデーモン化とジョブの管理
selenium
https://pypi.org/project/selenium/
Webページの自動操作。SeleniumのPythonバインディング
対応バージョン:Python 2.7,3.4+
seleniumは、ChromeやFirefoxなどブラウザを自動操作できるツール。ヘッドレスブラウザー(GUIを持たないブラウザ) 「PhantomJS」の操作もできます。
Mechanize
PerlのWWW:MechanizeのPython版
PerlのWWW:MechanizeのPython版。Python3には対応していません。
対応バージョン:Python2
最終更新:2011年
最終更新:2011年
Splinter
Python Webクローリング・スクレイピングの学習におすすめの本
Python クローリング・スクレイピングの実用書
関連参考外部サイト:悪用厳禁!プログラミング不要のWEBスクレイピングツール 比較19選