前提・実現したいこと
jupyterlabをエディタとし、python3を用いて、url = https://kabuoji3.com/stock/1305/2019/ の中に入っている2019年の「ダイワ上場投信信託ートピックス」の株価を抽出し、Excelファイルに記録する作業をしています。
excelファイルの作成にopenpyxlライブラリを使用しています。
発生している問題・エラーメッセージ
作成したexcelのセルに抽出した株価を記入し、その表を「1305ダイワ上場投信-トピックス.xlsx」というexcelファイル名で保存しました。
しかしその後、jupyterlabに保存された「1305ダイワ上場投信-トピックス.xlsx」のexcelファイルを開こうとしても、C:\Users\kengo\Desktop\mypandas\1305 ダイワ 上場投信-トピックス.xlsx is not UTF-8 encodedというエラーメッセージが出てexcelファイルを開くことができません。
初歩的なことかもしれませんがわかりません。よろしければご教授お願い致します。
エラーメッセージ C:\Users\kengo\Desktop\mypandas\1305 ダイワ 上場投信-トピックス.xlsx is not UTF-8 encoded
該当のソースコード
python 3 ソースコード !pip install bs4 !pip install requests !pip install openpyxl !pip install pandas import pandas as pd import requests import openpyxl from bs4 import BeautifulSoup code = 1305 year = 2019 url = 'https://kabuoji3.com/stock/' + str(code) + '/' + str(year) + '/' headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46"} soup = BeautifulSoup(requests.get(url, headers = headers).content, 'html.parser') title = soup.find('span',attrs={'class':'jp'}).text #Excelファイルを作成 wb = openpyxl.Workbook() ws = wb.active ws.title = str(title) ws['A1'].value = '日付' ws['B1'].value = '始値' ws['C1'].value = '高値' ws['D1'].value = '安値' ws['E1'].value = '終値' ws['F1'].value = '出来高' ws['G1'].value = '終値調整' #株価を取り出す Table = soup.find('table',attrs={'class':'stock_table'}) Tables = Table.find_all('tr') for i in range(1,len(Tables)): TR = Tables[i].find_all('td') for j,k in enumerate(TR,1): new_cell = ws.cell(row=(i+1),column=j) new_cell.value = k.text #ワークブックをエクセルファイルとして保存 wb.save(str(title) + '.xlsx')
試したこと
.xlsxはバイナリーファイルであるから、jupyterlabで開くことはできないと考え、.xlsxファイルを.csvファイルに変換する方法を試みた。
https://genchan.net/it/programming/python/8144/
上記のurlにある、エクセル(Excel)→csvの欄のサンプルコードに自分のファイル名を当てはめてもうまくいかなかった。
文字がUTF-8ではないか調べたがよくわかりませんでした。
補足情報(FW/ツールのバージョンなど)
anaconda3でpythonの環境構築をしました。
以下にpythonおよびimportしたパッケージのバージョン情報を記載します。
python 3.8.5
BeautifulSoup4 4.9.3
bs4 0.0.1
jupyterlab 2.2.6
openpyxl 3.0.5
pandas 1.1.3
pip 20.2.4
あなたの回答
tips
プレビュー