前提・実現したいこと
Python 3でWebから株の銘柄コードや銘柄名等のデータを取得して
CSVにて出力したいのですが、理想の並び方にならず困っています。
発生している問題・エラーメッセージ
現状、銘柄コードと銘柄名を配列化するところまで成功しました。
次に以下のような並び方でCSVへ出力したいです。
銘柄コード1,銘柄名1
銘柄コード2,銘柄名2
銘柄コード3,銘柄名3
...
...
...
該当のソースコード
from bs4 import BeautifulSoup import requests import csv # Yahoo!finance から銘柄コードを配列に url = "https://info.finance.yahoo.co.jp/ranking/?kd=27&mk=1&tm=d&vl=a" l = list() t = list() num = 1 while num <= 51: r = requests.get(url) soup = BeautifulSoup(r.text) codes = soup.select("#contents-body-bottom > div.rankdata > div.rankingTableWrapper > table > tbody > tr:nth-child(" + str(num) + ") > td:nth-child(1) > a") if len(codes) == 0: break num += 1 for code in codes: l.append(code.text) # 配列から銘柄名紐づけ base_url = "https://kabutan.jp/stock/?code=" num = 0 for i in l: url = base_url + str(l[num]) r = requests.get(url) soup = BeautifulSoup(r.text) titles = soup.select("#kobetsu_right > div.company_block > h3") num += 1 for title in titles: t.append(title.text) # csvへ出力 with open('data.csv', 'w') as file: writer = csv.writer(file, lineterminator='\n') writer.writerow(l) writer.writerow(t)
試したこと
多次元リスト化をした方が良いのか?と検討したが、うまくコードが思いつかない
補足情報(FW/ツールのバージョンなど)
Python 3.x
本日からPythonを勉強し始めました。コードはほとんどコピペして自分なりに改変しています。
プログラミング初心者。HTML,CSS,Perl等を少々把握。
回答2件
あなたの回答
tips
プレビュー