Python - パーサ - BeautifulSoup html・xml

 クラウディア
1. 概要
2. インストール
3. 使い方
4. Xml

1. 概要

 「BeautifulSoup」とは、その名の通り、「.html」の内容をビューティフルに解析するパーサです。  本ページは、「Python - ウェブスクレイピング」の記事とかぶる部分が多々あります。  なんだかんだは、「Beauful Soup (HTML パーサー) - Wikipedia」をご参照ください。

2. インストール

 「pip」でインストールするには。

pip install bs4
 もしくは。

pip install beautifulsoup4
 「FreeBSD」で、「ports」でインストールするには。

cd /usr/ports/www/py-beautifulsoup
make
make install
 オプションは、「DOC」のみなので、つけてもはずしても、あまり影響はありません。

3. 使い方

 下記のソースを書いて。

import urllib3
from bs4 import BeautifulSoup

http = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs='/パス/証明書.pem')
html = http.request('GET', 'https://freebsd.sing.ne.jp/lang/python/04/12/02.html')

soup = BeautifulSoup(html.data, "html.parser")

print(soup)
 実行すると、ほぼ下記のような結果が得られます。  (どうせ、ブラウザで、「ページのソースを表示」すれば得られるものなので、さらしても問題ないのだ)

<!DOCTYPE html>
<html>
<head><link href="https://freebsd.sing.ne.jp/lang/python/04/12/02.html" rel="canonical"/><meta content="Python よく使 うモジュール パーサ BeautifulSouphtml" name="description"/><link href="https://freebsd.sing.ne.jp/lang/python/04/12/02.html" hreflang="ja" rel="alternate"/>

・・・	以下略	・・・
 「BeautifulSoup」の本領は、上記ではなくて、9行目を。

print(soup.find('title').text)
 と書き換えれば、結果が。

Python - よく使うモジュール - パーサ - BeautifulSoup html
 となります。  タグの内容を抜き出したりできるのです。  メソッドうまく使い分ければ、コンテンツの分析が細かくできます。

4. xml

 「.xml」を「parse」する場合は、最初の引数の2番目を変えるわけですが・・・。  「xml.parser」では、なかった、調べたところでは「lxml-xml」。

import urllib3
from bs4 import BeautifulSoup

http = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs='/パス/証明書.pem')
html = http.request('GET', 'https://freebsd.sing.ne.jp/config/rss10.xml')

soup = BeautifulSoup(html.data, "lxml-xml")

print(soup)
 上記を実行すると、下記の結果が得られます。

<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.8" --><?xml-stylesheet href="http://www.w3.org/2000/08/w3c-synd/style.css" type="text/css"?><rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel rdf:about="">
<title>FreeBSD あれこれ</title>
<description>FreeBSD をはじめ OS・サーバ・アプリケーション等の紹介サイト。</description>
<link>https://freebsd.sing.ne.jp/</link>
・・・	以下略	・・・
AbemaTV 無料体験