🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1187閲覧

['href']、['src']の値を変更したい

yoshidayuta

総合スコア15

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/01/24 03:39

前提・実現したいこと

スプレッドシートのHTMLデータを取得し、データ内の複数の['href']、['src']の値を変更したい
取得まではできたのですが属性値の変更するにはどうすればいいですか?

該当のソースコード

text = worksheet.acell('E2').value from bs4 import BeautifulSoup parse_html = BeautifulSoup(text,'html.parser')

###parseした結果
<a href="https://URL"><img src="https://IMG_URL">のURLを変更したい

<!-- wp:image {"align":"center","width":823,"height":463} --> <div class="wp-block-image"><figure class="aligncenter is-resized"><a href="https://URL" rel="noopener" target="_blank"><img alt="" height="463" src="https://IMG_URL" width="823"/></a></figure></div> <!-- /wp:image --> <!-- wp:buttons {"align":"center"} --> <div class="wp-block-buttons aligncenter"><!-- wp:button {"borderRadius":11,"style":{"color":{"gradient":"linear-gradient(200deg,rgba(6,147,227,1) 17%,rgb(155,81,224) 100%)"}},"textColor":"amber","className":"is-style-outline"} --> <div class="wp-block-button is-style-outline"><a class="wp-block-button__link has-amber-color has-text-color has-background" href="https://URL" rel="noreferrer noopener" style="border-radius:11px;background:linear-gradient(200deg,rgba(6,147,227,1) 17%,rgb(155,81,224) 100%)" target="_blank"> <span class="fz-28px"><span class="fz-36px" style=""><em style="font-weight: bold;">いますぐ再生</em></span></span> </a></div>

試したこと

属性を一度削除して、新たに属性を追加する手法がいいのでしょうか?

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

for i in range(20): text = worksheet_text.acell('E2').value parse_html = BeautifulSoup(text,'html.parser') change_URL = parse_html.find_all(href='https://URL') change_img_URL = parse_html.find_all(src='https://IMG_URL') for i in change_URL: del i['href'] i.attrs['href']=new_url_list[url_count] for i in change_img_URL: del i['src'] i.attrs['src']=new_img_list[img_count] img_count +=1 worksheet_complete.update_acell('E'+str(count),str(parse_html)) count +=1 url_count +=1

こちらでうまく変換できました。

投稿2021/01/29 11:20

yoshidayuta

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問