前提・実現したいこと
pythonでBeautifulsoupを使ったスクレイピングのプログラムを勉強中の初心者です。
書籍(Pythonによるスクレイピング&機械学習)のコードを写経中なのですが、テキストにあるコードを実行したところ、掲題のエラーが発生しました
発生している問題・エラーメッセージ
Traceback (most recent call last): File "bs-select.py", line 17, in <module> h1=soup.select_one("div#meigen>h1").string AttributeError: 'NoneType' object has no attribute 'string'
該当のソースコード
Python
1from bs4 import BeautifulSoup 2 3# 解析対象となるHTML --- (※1) 4html = """ 5<html><body> 6<div id="meigen"> 7 <h1>トルストイの名言</h1> 8 <ul class="items"> 9 <li>汝の心に教えよ、心に学ぶな</li> 10 <li>謙虚な人は誰からも好かれる。</li> 11 <li>強い人々は、いつも気取らない。</li> 12 </ul> 13</div> 14</body></html> 15""" 16 17# HTMLを解析する --- (※2) 18soup = BeautifulSoup(html, 'html.parser') 19 20# 必要な部分をCSSクエリで取り出す 21# | タイトル部分を取得 --- (※3) 22h1 = soup.select_one("div#meigen > h1").string 23print("h1 =", h1) 24 25# | リスト部分を取得 --- (※4) 26li_list = soup.select("div#meigen > ul.items > li") 27for li in li_list: 28 print("li =", li.string)
試したこと
色々調べてみたのですが、わかりませんでした…
補足情報(FW/ツールのバージョンなど)
AWS cloud9を使い、python3で実行しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。