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

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

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

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

Python 3.x

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

Python

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

Q&A

解決済

1回答

1893閲覧

bs4.element.Tagで取得した要素から子要素を取得する方法

k-g-11

総合スコア6

Beautiful Soup

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

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2020/09/30 04:34

編集2020/09/30 04:37

以下のコードより、一番上から3つ目までのliタグを取得し、aタグのtitle属性の中身及び、imgタグのsrc属性のテキストを取得したいです。

html

1<section class="works_carousel mg_t20 img_hover"> 2 <ul class="bxslider clearfix"> 3 <li class="floatL"> 4 <p> 5 <a href="/jirei/tokyo/saidan/B3_arakawa_machiya_20151222.jpg" class="jirei cboxElement" 6 title="家族葬・花祭壇込み82万 セイスペード"> 7 <img width="230" height="130" src="/jirei/tokyo/saidan/B3_arakawa_machiya_20151222_s.jpg" 8 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 価格 一般葬 火葬場" style="opacity: 1;" /> 9 </a> 10 <br /> 11 <span class="scaps"><a href="http://www.artmemory.jp/plan/b3.html">家族葬・花祭壇込み82万 セイスペード</a></span> 12 </p> 13 <p> 14 <a href="/jirei/tokyo/saidan/A3_arakawa_machiya.jpg" class="jirei cboxElement" 15 title="お葬式・花祭壇込み145万 セイエルザ"> 16 <img width="230" height="130" src="/jirei/tokyo/saidan/A3_arakawa_machiya_s.jpg" 17 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 社葬 大型葬 価格" style="opacity: 1;" /> 18 </a> 19 <br /> 20 <span class="scaps"><a href="http://www.artmemory.jp/plan/a3.html">お葬式・花祭壇込み145万 セイエルザ</a></span> 21 </p> 22 </li> 23 <li class="floatL"> 24 <p> 25 <a href="/jirei/tokyo/saidan/B2_arakawa_machiya.jpg" class="jirei cboxElement" 26 title="お葬式・花祭壇込み100万 セイプレイト"> 27 <img width="230" height="130" src="/jirei/tokyo/saidan/B2_arakawa_machiya_s.jpg" 28 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 価格" style="opacity: 1;" /> 29 </a> 30 <br /> 31 <span class="scaps"><a href="http://www.artmemory.jp/plan/b2.html">お葬式・花祭壇込み100万 セイプレイト</a></span> 32 </p> 33 <p> 34 <a href="/jirei/tokyo/saidan/B2_arakawa_machiya2.jpg" class="jirei cboxElement" 35 title="お葬式・花祭壇込み100万 セイプレイト"> 36 <img width="230" height="130" src="/jirei/tokyo/saidan/B2_arakawa_machiya2_s.jpg" 37 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 価格" style="opacity: 1;" /> 38 </a> 39 <br /> 40 <span class="scaps"><a href="http://www.artmemory.jp/plan/b2.html">お葬式・花祭壇込み100万 セイプレイト</a></span> 41 </p> 42 </li> 43 <li class="floatL"> 44 <p> 45 <a href="/jirei/tokyo/saidan/B3_arakawa_machiya.jpg" class="jirei cboxElement" 46 title="家族葬・花祭壇込み82万 セイスペード"> 47 <img width="230" height="130" src="/jirei/tokyo/saidan/B3_arakawa_machiya_s.jpg" 48 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 価格 小規模" style="opacity: 1;" /> 49 </a> 50 <br /> 51 <span class="scaps"><a href="http://www.artmemory.jp/plan/b3.html">家族葬・花祭壇込み82万 セイスペード</a></span> 52 </p> 53 <p> 54 <a href="/jirei/tokyo/saidan/B6_arakawa_machiya1.jpg" class="jirei cboxElement" 55 title="家族葬・花祭壇込み49万 セイクラーク"> 56 <img width="230" height="130" src="/jirei/tokyo/saidan/B6_arakawa_machiya1_s.jpg" 57 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 価格 小規模" style="opacity: 1;" /> 58 </a> 59 <br /> 60 <span class="scaps"><a href="http://www.artmemory.jp/plan/b6.html">家族葬・花祭壇込み49万 セイクラーク</a></span> 61 </p> 62 </li> 63 <li class="floatL"> 64 <p> 65 <a href="/jirei/tokyo/saidan/B6_arakawa_machiya.jpg" class="jirei cboxElement" 66 title="家族葬・花祭壇込み49万 セイクラーク"> 67 <img width="230" height="130" src="/jirei/tokyo/saidan/B6_arakawa_machiya_s.jpg" 68 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 価格 小規模" style="opacity: 1;" /> 69 </a> 70 <br /> 71 <span class="scaps"><a href="http://www.artmemory.jp/plan/b6.html">家族葬・花祭壇込み49万 セイクラーク</a></span> 72 </p> 73 <p> 74 <a href="/jirei/tokyo/saidan/arakawa_machiya_201702_01.jpg" class="jirei cboxElement" 75 title="お葬式・花祭壇込み128万 セイヒラリー"> 76 <img width="230" height="130" src="/jirei/tokyo/saidan/arakawa_machiya_201702_01_s.jpg" 77 alt="荒川区 町屋斎場 葬儀 料金 花祭壇" style="opacity: 1;" /> 78 </a> 79 <br /> 80 <span class="scaps"><a href="http://www.artmemory.jp/plan/b1.html">お葬式・花祭壇込み128万 セイヒラリー</a></span> 81 </p> 82 </li> 83 </ul> 84</section> 85</div>

下記コードにて、liタグを取得しようと試みたのですが、結果は何故か「None」となってしまいました。

python

1 case_list = bs.select_one(".works_carousel .bxslider") 2 for elem in case_list: 3 if type(elem) is not NavigableString: 4 a = elem.find("li") 5 print(a)

コードが長い為、省略させて頂いているのですが、sectionタグ内の.works_carouselは上記HTMLコードの下に続く形で、いくつか存在しております。
どなたか、こちらの問題解決の為、ご助言頂けましたら幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

python

1from bs4 import BeautifulSoup 2 3 4html = '''<section class="works_carousel mg_t20 img_hover"> 5 <ul class="bxslider clearfix"> 6 <li class="floatL"> 7 <p> 8 <a href="/jirei/tokyo/saidan/B3_arakawa_machiya_20151222.jpg" class="jirei cboxElement" 9 title="家族葬・花祭壇込み82万 セイスペード"> 10 <img width="230" height="130" src="/jirei/tokyo/saidan/B3_arakawa_machiya_20151222_s.jpg" 11 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 価格 一般葬 火葬場" style="opacity: 1;" /> 12 </a> 13 <br /> 14 <span class="scaps"><a href="http://www.artmemory.jp/plan/b3.html">家族葬・花祭壇込み82万 セイスペード</a></span> 15 </p> 16 <p> 17 <a href="/jirei/tokyo/saidan/A3_arakawa_machiya.jpg" class="jirei cboxElement" 18 title="お葬式・花祭壇込み145万 セイエルザ"> 19 <img width="230" height="130" src="/jirei/tokyo/saidan/A3_arakawa_machiya_s.jpg" 20 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 社葬 大型葬 価格" style="opacity: 1;" /> 21 </a> 22 <br /> 23 <span class="scaps"><a href="http://www.artmemory.jp/plan/a3.html">お葬式・花祭壇込み145万 セイエルザ</a></span> 24 </p> 25 </li> 26 <li class="floatL"> 27 <p> 28 <a href="/jirei/tokyo/saidan/B2_arakawa_machiya.jpg" class="jirei cboxElement" 29 title="お葬式・花祭壇込み100万 セイプレイト"> 30 <img width="230" height="130" src="/jirei/tokyo/saidan/B2_arakawa_machiya_s.jpg" 31 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 価格" style="opacity: 1;" /> 32 </a> 33 <br /> 34 <span class="scaps"><a href="http://www.artmemory.jp/plan/b2.html">お葬式・花祭壇込み100万 セイプレイト</a></span> 35 </p> 36 <p> 37 <a href="/jirei/tokyo/saidan/B2_arakawa_machiya2.jpg" class="jirei cboxElement" 38 title="お葬式・花祭壇込み100万 セイプレイト"> 39 <img width="230" height="130" src="/jirei/tokyo/saidan/B2_arakawa_machiya2_s.jpg" 40 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 価格" style="opacity: 1;" /> 41 </a> 42 <br /> 43 <span class="scaps"><a href="http://www.artmemory.jp/plan/b2.html">お葬式・花祭壇込み100万 セイプレイト</a></span> 44 </p> 45 </li> 46 <li class="floatL"> 47 <p> 48 <a href="/jirei/tokyo/saidan/B3_arakawa_machiya.jpg" class="jirei cboxElement" 49 title="家族葬・花祭壇込み82万 セイスペード"> 50 <img width="230" height="130" src="/jirei/tokyo/saidan/B3_arakawa_machiya_s.jpg" 51 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 価格 小規模" style="opacity: 1;" /> 52 </a> 53 <br /> 54 <span class="scaps"><a href="http://www.artmemory.jp/plan/b3.html">家族葬・花祭壇込み82万 セイスペード</a></span> 55 </p> 56 <p> 57 <a href="/jirei/tokyo/saidan/B6_arakawa_machiya1.jpg" class="jirei cboxElement" 58 title="家族葬・花祭壇込み49万 セイクラーク"> 59 <img width="230" height="130" src="/jirei/tokyo/saidan/B6_arakawa_machiya1_s.jpg" 60 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 価格 小規模" style="opacity: 1;" /> 61 </a> 62 <br /> 63 <span class="scaps"><a href="http://www.artmemory.jp/plan/b6.html">家族葬・花祭壇込み49万 セイクラーク</a></span> 64 </p> 65 </li> 66 <li class="floatL"> 67 <p> 68 <a href="/jirei/tokyo/saidan/B6_arakawa_machiya.jpg" class="jirei cboxElement" 69 title="家族葬・花祭壇込み49万 セイクラーク"> 70 <img width="230" height="130" src="/jirei/tokyo/saidan/B6_arakawa_machiya_s.jpg" 71 alt="町屋斎場 花祭壇 東京 荒川区 家族葬 葬儀 価格 小規模" style="opacity: 1;" /> 72 </a> 73 <br /> 74 <span class="scaps"><a href="http://www.artmemory.jp/plan/b6.html">家族葬・花祭壇込み49万 セイクラーク</a></span> 75 </p> 76 <p> 77 <a href="/jirei/tokyo/saidan/arakawa_machiya_201702_01.jpg" class="jirei cboxElement" 78 title="お葬式・花祭壇込み128万 セイヒラリー"> 79 <img width="230" height="130" src="/jirei/tokyo/saidan/arakawa_machiya_201702_01_s.jpg" 80 alt="荒川区 町屋斎場 葬儀 料金 花祭壇" style="opacity: 1;" /> 81 </a> 82 <br /> 83 <span class="scaps"><a href="http://www.artmemory.jp/plan/b1.html">お葬式・花祭壇込み128万 セイヒラリー</a></span> 84 </p> 85 </li> 86 </ul> 87</section> 88</div>''' 89 90# BeautifulSoupでパースする 91soup = BeautifulSoup(html, 'html.parser') 92# <li>要素を全て取得 93li = soup.find_all('li') 94# 上から3つ目までスライスし、1つずつ処理していく 95for tag_li in li[:3]: 96 # <li>要素内の<a>要素を.find()で取得 97 tag_a = tag_li.find('a') 98 99 print(tag_a) 100 print('-'*15) 101 102 # リンクを取得する場合には.get()で'href'を指定する 103 href = tag_a.get('href') 104 print(href) 105 print('-'*15) 106 107 # <img>要素を取得する場合には更に<a>要素から.find()で取得 108 tag_img = tag_a.find('img') 109 # src属性を取得する場合には同様に.get()で'src'を指定する 110 img_url = tag_img.get('src') 111 print(img_url) 112 113 print('='*50)

備考

あらかじめsectionやulなどを指定している場合には
li = soup.find_all('li')のsoupの部分を任意の親を指定してください。

投稿2020/09/30 05:23

nto

総合スコア1438

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

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

k-g-11

2020/09/30 06:44 編集

ご回答ありがとうございます。 ご丁寧にご回答頂きましたおかげで、目的のデータが取得出来、BeautifulSoupによる要素の取得方法につきまして、大変勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問