複数のタグを指定してスクレイピング
あるurlのソースコードから、下記の2箇所を取得したいのですが、
結果のリストが空になってしまいます。
def get_all_reviews(url):
rvw_list_text = []
res = requests.get(url)
soup = bs4.BeautifulSoup(res.text, features='lxml')
for r in soup.find_all(['dd','p']):
if r.name == 'dd' and r.get('class') == 'rpoint-tx-point':
rvw_list_text.append(r.get_text(strip=True))
elif r.name == 'p' and r.get('class') == 'review-tit-article':
rvw_list_text.append(r.get_text(strip=True))
print(rvw_list_text)
url = "https://www.xxxxx"
rvw_list_text = get_all_reviews(url)
reviews_text = []
for i in range(len(rvw_list_text)):
if key_word in rvw_list_text[i].text: # 検索ワードが含まれていたら
rvw_text = textwrap.fill(rvw_list_text[i].text, 80)
reviews_text.append(rvw_text)
取得したい箇所:
<dd class="rpoint-tx-point">4.50点</dd>
<p class="review-tx-article">
<span class="review-tit-article">カリキュラム</span>5教科が習えるのはいいのですが、部活をやっているので、土曜日に部活の後に3時間半の授業はちょっと長くてキツイ日もあるかなと思います。</p>