Python Webクローリング・スクレイピングのライブラリ・モジュール比較

プログラミング言語「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

https://lxml.de/

機能豊富で高速

 

aiohttp

KeepSafe/aiohttp

多数のWebサイトを高速クローリング

scrapelib

unlightlabs/scrapelib

Scrapy

豊富な機能を備えた総合的型フレームワーク

https://scrapy.org/

対応;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年

Splinter

Python Webクローリング・スクレイピングの学習におすすめの本

Python クローリング・スクレイピングの実用書

関連参考外部サイト:悪用厳禁!プログラミング不要のWEBスクレイピングツール 比較19選