前提・実現したいこと
リストの中の対象の文字列以外を別の文字列に置き換える方法が知りたいです。
下記コード結果の"落選"以外の部分を"当選"と出力するようにしたいです。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
python
1soup = BeautifulSoup(page_source, 'html.parser') 2 3a = [] 4 5spots = soup.find_all('div', attrs={'class': 'element-rhythm-extra-long anchor-pt'}) 6for spot in spots: 7 reslets = spot.find('div', attrs={'class': 'ttl-result-area'}) 8 spot.find('span', attrs={'class': 'horizontal-rhythm'}).extract() 9 spot.find('h3', attrs={'class': 'ttl-stock'}).extract() 10 spot.find('div', attrs={'class': 'ttl-stock-area'}).extract() 11 res = reslets.text.replace('\n', '')#/nを空欄にする 12 data = {} 13 data['結果'] = res 14 a.append(data) 15 16#結果 17[{'結果': ''}, 18 {'結果': ''}, 19 {'結果': ''}, 20 {'結果': ''}, 21 {'結果': '落選'}, 22 {'結果': '落選'}, 23 {'結果': ''}, 24 {'結果': ''}]
試したこと
res = reslets.text.replace('\n', '') を res = reslets.text.replace('\n', '当選') にしたところ [{'結果': '当選当選'}, {'結果': '当選当選'}, {'結果': '当選当選'}, {'結果': '当選当選'}, {'結果': '当選落選当選当選'}, {'結果': '当選落選当選当選'}, {'結果': '当選当選'}, {'結果': '当選当選'}] と出力されました。
また、
soup = BeautifulSoup(page_source, 'html.parser') a = [] spots = soup.find_all('div', attrs={'class': 'element-rhythm-extra-long anchor-pt'}) for spot in spots: reslets = spot.find('div', attrs={'class': 'ttl-result-area'}) spot.find('span', attrs={'class': 'horizontal-rhythm'}).extract() spot.find('h3', attrs={'class': 'ttl-stock'}).extract() spot.find('div', attrs={'class': 'ttl-stock-area'}).extract() res = reslets.text.replace('\n', '') a.append(res) とコードを書き替え ['', '', '', '', '落選', '落選', '', ''] と出力されたものをに対し for w in a: if len(a) < 2: print('当選') else: print('b')#確認のためbと仮置きした を実行すると b b b b b b b b を出力されました。
補足情報(FW/ツールのバージョンなど)
わかりにくいところが多々あるかと思います。細かい点でもご質問いただければなるべく早く返信いたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。