pythonの学習中です。
ここに実現したいことを箇条書きで書いてください。
スクレイピングの学習をしています。
前提
Dockerコンテナを利用した仮想環境内でanaconda最新版をインストールして
pythonの基礎学習やスクレイピングの学習をしています。
今やっていることは練習用に競馬のレース開催日をスクレイピングで取得しています。
エディターはVScodeです。
発生している問題・エラーメッセージ
jupyterのdev.ipynbというファイル内で関数を作成しこのファイル上ではコードが動いていることが確認できました。
関数をscrape.pyというファイルにコピーし保存、main.ipynbというファイルを新たに作成し、import scrapeで実行したところ以下のエラーコードがでて実行できません。
ファイルはすべて同ディレクトリ内に配置しています。
ModuleNotFoundError: No module named
該当のソースコード
anaconda(python3.11.7)
1from urllib.request import urlopen 2from tqdm.notebook import tqdm 3from bs4 import BeautifulSoup 4import pandas as pd 5import time 6import re 7 8 9 10def scrape_kaisai_date(from_: str, to_: str): 11 """ 12 from_= to=_をyyyy-mm形式で指定すると、その期間のレース開催日一覧を取得する関数 13 """ 14 kaisai_date_list = [] 15 for date in tqdm(pd.date_range(from_, to_, freq='MS')): 16 year = date.year 17 month = date.month 18 url = f'https://race.netkeiba.com/top/calendar.html?year={year}&month={month}' 19 html = urlopen(url).read() 20 time.sleep(1) 21 soup = BeautifulSoup(html) 22 a_list = soup.find('table',class_="Calendar_Table").find_all('a') 23 for a in a_list: 24 kaisai_date = re.findall(r'kaisai_date=(\d{8})',a['href'])[0] 25 kaisai_date_list.append(kaisai_date) 26 return kaisai_date_list
試したこと
VScodeの設定からPython › Analysis: Extra Paths
検索解決パスの追加のインポートなどを行ってみましたが解決しませんでした。
試しにscrape.pyをtest.pyに変更し、main.ipynbでimportしたところ、見た目はimportできてるようにみえますが、いざ関数を実行すると
import test
kaisai_date_list = kaisai_date_= test.scrape_kaisai_date(from_='2022-09', to_='2023-05')
AttributeError: module 'test' has no attribute 'scrape_kaisai_date'
とやはりエラーがでます。

0 コメント