投稿日: | 最終更新日:
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 113
- 制作 54
- RaspberryPi 41
- Django 40
- WordPress 40
- Linux 27
- VPS 22
- JavaScript 21
- PHP 20
- HTML・CSS 19
- AWS 16
- 仮想環境 15
- レスポンシブデザイン 13
- マイコン 11
- WEB全般 11
- 動画製作 9
- Webサービス 8
- 統合開発環境 8
- PyCharm 7
- jQuery 7
- 機械学習 7
- AfterEffects 7
- 起業・設立 7
- Django REST framework 6
- C# 6
- デザイン 6
- SEO 6
- pydata 6
- Visual Studio 5
- 数学 5
- 携帯サイト 5
- heroku 5
- Mac 5
- illustrator 5
- node.js 5
- Anaconda 5
- Nginx 4
- Jupyter Notebook 4
- インフラ 4
- symfony 4
- Webスクレイピング 3
- photoshop 3
- Go言語 3
- PC 3
- Google Colaboratory 3
- ツール 3
- Docker 3
- facebook 3
- 作業効率化 3
- データベース 3
- Cloud9 3
- コマンド 2
- micro:bit 2
- Kali Linux 2
- Webサーバー 2
- MariaDB 2
- ドローン 2
- コンテナ 2
- DaVinci Resolve 2
- ネットワーク 2
- Java 2
- movie 2
- PCDJ 2
- 音楽 2
- XSERVER 2
- Ansible 1
- Vue.js 1
- JSON 1
- Bootstrap 1
- バージョン管理システム 1
- SSL 1
- S3 1
- ムームードメイン 1
- ネットワーク 1
- アニメーション 1
- D3.js 1
- Rhino 1
- アニメ 1
- git 1
- windows 1
- アクセス解析 1
- スマートフォン 1
- アフィリエイトノウハウ 1
- 知識 1
- TypeScript 1
- 役立つ本・書籍 1
- データサイエンス 1
- ESP32 1
- AI 1
- ownCloud 1
- API 1