前提・実現したいこと
BeautifulSoup4を用いて以下、サイトの要素を取得しDateFrameを活用してタイトルをindex、月日を列、タイトルを行とした表を作成したい。
<div class="box_title info"> <a href="/hogehoge/01">タイトル01</a> <span class="info">8月31日</span> </div>, <div class="box_title info"> <a href="/hogehoge/02">タイトル02</a> <span class="info">8月7日</span> </div>, <div class="box_title with-info"> <a href="/hogehoge/03">タイトル03</a> <span class="info">8月2日</span> </div>
※前提として、各ライブラリーのimportを行い以下を実行し上記のHtml要素を取得している。
url = "https://hogehoge" response = req.urlopen(url) parse_html = BeautifulSoup(response,'html.parser') title_lists = parse_html.find_all('div', class_='box_title')
上記行った結果表題に記載しているhtml要素を取得しました。
0. 月日に関しては以下実行しprintにて表示確認できたのですが
Date = parse_html.find_all('span', class_='info') Date[1:4]
表示結果
[<span class="info">8月31日</span>, <span class="info">8月7日</span>, <span class="info">8月2日</span>]
発生している問題
2. aタグのテキストデータを取得しようと模索しているのですがうまく要素の取得ができない状況でfindで単一要素の取得はできるもののaタグ全てのテキストが取得できない状況です。
試したこと
title_lists = parse_html.find_all('div', class_='box_title') a = div.find("a") print(p.string)
エラーメッセージ NameError: name 'div' is not defined
以下のように試したものの一つの値しか取得できずfind_allするのかな....と思ってます。
parse_html.find('div', class_='box_title').find_all('a')
この辺で詰まって頭打ちになっております。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー