質問するログイン新規登録
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Beautiful Soup

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1974閲覧

BeautifulSoup4でscriptタグ間を抽出する方法

sawareco

総合スコア18

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Beautiful Soup

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2023/04/12 08:24

0

0

実現したいこと

Pythonを使ったWEBスクレイピングでつまずきました。
スクレイピング初心者ですので、お手柔らかにご指南頂けますと幸いです。

前提

BeautifulSoup4を使ってWEBスクレイピングをしています。
スクレイピングでつまづいたポイントですが、scriptタグ間の取得です。
属性のないscriptタグは問題なく取得することができました。

しかし、type属性が付いたものをどのように取得するのか、まったくわからない状態ですので
教えていただきたいです。

よろしくお願いいたします。

該当のソースコード

html

1<script type="application/ld+json"> 2{"@context":"http://schema.org","@type":"","@id" 3省略 4} 5</script>

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

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

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

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

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

otn

2023/04/12 15:20

属性のないscriptタグは問題なく取得できているのであれば、全く同じコードで属性が有ろうが無かろうが取得できますが、一体何に躓いているのでしょうか?
guest

回答1

0

ベストアンサー

以下、CSS セレクタを使う場合。
select() メソッドを使用していますが、取得対象の script 要素が単一であれば select_one() メソッドでもよいかと思います。

python

1from bs4 import BeautifulSoup 2import re 3 4html = ''' 5<script type="application/ld+json"> 6{"@context":"http://schema.org","@type":"","@id" 7省略 8} 9</script> 10''' 11 12soup = BeautifulSoup(html, 'html.parser') 13script_data = soup.select('script[type="application/ld+json"]') 14if script_data: 15 js = re.sub(r'({.+})(?=.*</script>)', r'\1', script_data[0].text, flags=re.DOTALL).strip() 16 print(js) 17 18# {"@context":"http://schema.org","@type":"","@id" 19# 省略 20# }

投稿2023/04/12 08:55

melian

総合スコア21449

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

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

sawareco

2023/04/12 17:14

ありがとうございます!無事、取得することができました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問