python BeautifulSoup if分
解決したいこと
自己学習でPythonを学び始めました
Steamのゲームの抽出をしたく、BeautifulSoupを使用しております
Steamでは、セールしてる商品があり、class名が違く
for文で回す際エラーが起きてしまいます
if文など使って回避できるのか
解決を教えて頂きたいです
#セール商品
game_price = game.find('div', attrs={'class': 'col search_price discounted responsive_secondrow'}).text
#セールしてない(通常)
game_price = game.find('div', attrs={'class': 'col search_price responsive_secondrow'}).text
発生している問題・エラー
3 game_price = game.find('div', attrs={'class': 'col search_price responsive_secondrow'}).text
4 game_price = game_price.replace('\n', '')
5 game_price
AttributeError: 'NoneType' object has no attribute 'text'
該当するソースコード
import requests
from bs4 import BeautifulSoup
import csv
import pandas as pd
#キーワード入力
search_word = input("検索キーワード=")
url = 'https://store.steampowered.com/search/?term=' + search_word
res = requests.get(url)
#parser = 分割的な意味
soup = BeautifulSoup(res.text, 'html.parser')
#全体
games = soup.find_all('div', attrs={'class': 'responsive_search_name_combined'})
#for文ではなく今は1個持ってきている
game = games[0]
#ゲームのタイトル
game_title = game.find('span', attrs={'class': 'title'})
#セールしてる商品の金額
game_price = game.find('div', attrs={'class': 'col search_price discounted responsive_secondrow'}).text
#通常商品
game_price = game.find('div', attrs={'class': 'col search_price responsive_secondrow'}).text
game_price = game_price.replace('\n', '')
game_price
自分で試したこと
ここに問題・エラーに対して試したことを記載してください。
for文で実施した際
セールしてる商品なら
game_price = game.find('div', attrs={'class': 'col search_price discounted responsive_secondrow'}).text
してないなら
game_price = game.find('div', attrs={'class': 'col search_price responsive_secondrow'}).text
と分岐と言いますか条件にする方法が分かりません。。。
0