投稿日: | 最終更新日:
Beautiful Soup4のパーサ(構文解析器)
Pythonでスレイピングを行います。Beautiful Soup4のパーサを使ってWebサイトを解析します。
Beautiful Soup4のパーサを使う
前回は、Beautiful Soup4でWebページの解析をしました。Beautiful Soupとは、HTMLやXMLの内容を解析するためのPythonライブラリですが、パーサ(構文解析器)を切り替えることにより、より正確な解析ができます。Beautiful Soup4は標準で「html.parser」を指定しますが、Pythonパッケージを追加インストールすることにより他のパーサも利用できます。
前提
①仮想環境、本番環境どちらでも構いませんが、CentOS7にPython3とvenvがインストールされているものとします。VPSに作った方法ですが、共通ですので以下をご参考に。
②スクレイピングに使用するPythonパッケージ(Requests、Beautiful Soup4)をインストールします。
→Pythonのウェブスクレイピング環境を作る(Requests、Beautiful Soup4)
ホスト環境
ホスト環境はUbuntuですが、WindowsでもMacでもOKです。
OS | Ubuntu 16.04.1 LTS 64bit |
---|---|
Virtualbox | 5.1 |
Vagrant | 1.9.5 |
ゲスト環境
OS | CentOS 7.1.1503 |
---|---|
Python | 3.6.1 |
pip | 9.0.1 |
Webサーバ | Apache/2.4.6 (CentOS) |
mod_wsgi | 4.5.17 |
lxml、html5のパーサパッケージをインストール
①venvの仮想環境を起動します。
. env/bin/activate
②lxml、html5libパッケージをインストールします。
pip install lxml pip install html5lib
パーサを使う
①venvの仮想環境から、そのままコマンドでpythonの対話モードを起動します。
python
②以下のコードを記述して実行します。RequestsオブジェクトのcontextにHTMLが入ります。そのデータを元にBeautifulSoupオブジェクトを生成します。なお、パーサは標準の「html.parser」を使います。
>>> import requests >>> from bs4 import BeautifulSoup >>> r = requests.get('https://hombre-nuevo.com/python/python0060/') >>> soup = BeautifulSoup(r.content, 'html.parser')
高速に解析したり、正しいhtml5を解析したい場合は、他のパーサを指定します。
パーサ | 指定方法 | 特徴 |
---|---|---|
Python HTMLパーサ | BeautifulSoup(markup, ‘html.parser’) | 他のライブラリ不要。標準のパーサ。 |
lxml HTMLパーサ | BeautifulSoup(markup, ‘lxml’) | 高速。 |
lxml XMLパーサ | BeautifulSoup(markup, ‘lxml-xml’) | 高速。 |
html5libパーサ | BeautifulSoup(markup, ‘html5lib’) | HTML5が生成できるが、遅い。 |
- Python 88
- 制作 56
- RaspberryPi 41
- WordPress 40
- Django 32
- Linux 24
- VPS 22
- PHP 20
- JavaScript 20
- HTML・CSS 18
- 仮想環境 15
- レスポンシブデザイン 13
- WEB全般 11
- AWS 10
- マイコン 9
- Webサービス 8
- 統合開発環境 8
- 起業・設立 7
- jQuery 7
- SEO 6
- C# 6
- 携帯サイト 5
- heroku 5
- デザイン 5
- PyCharm 5
- symfony 4
- node.js 4
- 機械学習 4
- illustrator 4
- Mac 4
- Visual Studio 4
- ツール 3
- データベース 3
- facebook 3
- Go言語 3
- PC 3
- Docker 3
- 作業効率化 3
- Webスクレイピング 3
- photoshop 3
- Cloud9 3
- インフラ 3
- Webサーバー 2
- movie 2
- ネットワーク 2
- Java 2
- ドローン 2
- コンテナ 2
- Kali Linux 2
- コマンド 2
- XSERVER 2
- MariaDB 2
- 動画製作 2
- DaVinci Resolve 2
- 知識 1
- アフィリエイトノウハウ 1
- スマートフォン 1
- アクセス解析 1
- windows 1
- 役立つ本・書籍 1
- git 1
- アニメ 1
- Rhino 1
- D3.js 1
- アニメーション 1
- TypeScript 1
- データサイエンス 1
- Nginx 1
- ownCloud 1
- ESP32 1
- API 1
- ネットワーク 1
- pydata 1
- ムームードメイン 1
- S3 1
- JSON 1
- Bootstrap 1
- SSL 1
- 音楽 1
- PCDJ 1
- バージョン管理システム 1
- 数学 1