Memoize2

Python BeautifulSoup 要素のモディファイについて


#! /usr/bin/env python3
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup

html = """<!-- SAMPLE -->
<a href="sample-A.html">sample-A</a>
<a href="sample-B.html">sample-B</a>"""

soup = BeautifulSoup(html, 'lxml')
# 比較のためにオリジナルの文字列表現を取っておく
soupOrgStr = str(soup)
# href の中身を other-domein/sample-*.html に書き換える
for a in soup.find_all('a') :
    a['href'] = 'other-domein/' + a['href']
    # ついでに target="_blank" を付け足す
    a['target'] = "_blank"

# BeautifulSoup オブジェクトの文字列表現を見比べてみる
print("ORG:\n", soupOrgStr)
print("")
# soup の方は破壊的に変更されているのがわかる
print("modified:\n", str(soup))

実行結果:


ORG:
 <!-- SAMPLE --><html><body><a href="sample-A.html">sample-A</a>
<a href="sample-B.html">sample-B</a></body></html>

modified:
 <!-- SAMPLE --><html><body><a href="other-domein/sample-A.html" target="_blank">sample-A</a>
<a href="other-domein/sample-B.html" target="_blank">sample-B</a></body></html>

参考: Beautiful Soup Documentation > Quick Start > attributes

 

Last modified: 2016-12-19

Page Top

Index

Bw

Author: 中村 心 Shin Nakamura, Email: sn(at)i.basicwerk.com


© Shin Nakamura/BasicWerk 2008 - 2024