質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
Beautiful Soup

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

Python 3.x

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

Q&A

解決済

2回答

2929閲覧

beautifulsoup で href と title が存在する a タグのみを抽出することはできませんでしょうか?

dame-dame

総合スコア78

Beautiful Soup

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

Python 3.x

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

0グッド

0クリップ

投稿2021/07/15 07:53

beautifulsoup を使って、
https://gigazine.net/をスクレイピングの練習のために使用しています。

下記にあるように a タグの中に、 href とtitle がペアで含まれているのを見つけたのでこれらを
ペアで取得したいのですが、どのように取得すればいいのかわからないです。

html

1<a href="https://gigazine.net/news/20210715-dogecoin-creator-attack-on-whole-ecosystem/" title="「ドージコイン」の開発者が暗号資産を強く批判し賛否両論が巻き起こる"><span>「ドージコイン」の開発者が暗号資産を強く批判し賛否両論が巻き起こる</span></a> 2

https://gigazine.net/ の中にはhref がたくさん含まれており、a タグのものでhref がついているものを引っ張ってくると、

html

1<a href="https://gigazine.net/news/20210715-dogecoin-creator-attack-on-whole-ecosystem/"><img src="https://i.gzn.jp/img/2021/07/15/dogecoin-creator-attack-on-whole-ecosystem/00_m.jpg" id="lz1"></a> 

のようにtitle がないものや

html

1<a class="ctlink" href="https://gigazine.net/news/20210715-dogecoin-creator-attack-on-whole-ecosystem/"><span class="catab">メモ</span></a>

のように 不要な span クラスが含まれる (必要なのはあくまでhrefとtitle のペアのみで、この2つを辞書に取り込みたいです)
ものも含まれてしまいます。

ページの中で、a タグ を取り出し、そしてその中で href と titleがペアで存在するものを抜き出すことを
beautifulsoupでなんとか実現できないでしょうか?

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

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

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

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

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

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

dame-dame

2021/07/15 22:52

ありがとうございます。頂いたところを参考にしsたら、直ぐにできました。 解決方法も掲載しておきました。非常に的確なアドバイスありがとうございました。今後とも宜しくお願いいたします。
guest

回答2

0

python3

1def a_with_href_and_title(tag): 2 return tag.has_attr('title') and tag.has_attr('href') 3#and tag.has_attr('href') 4# and tag.has_attr('title') 5 6print(parse_html.find_all(a_with_href_and_title))

投稿2021/07/15 22:52

dame-dame

総合スコア78

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

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

0

ベストアンサー

フィルターに関数を指定すれば良いかと。

kondou.com - Beautiful Soup 4.2.0 Doc. 日本語訳 の、
パースツリーを検索 > フィルターの種類 > 関数
の欄に、

以下の関数では、HTMLタグが “class” 属性を持ち、”id”属性を持たない場合に True を返します。

というサンプルがあるので、これを参考にすれば「href属性とtitle属性を持つ」もすぐに出来るでしょう。
find_allでの使い方も書いてあります。

投稿2021/07/15 08:24

otn

総合スコア85901

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問