From a752f9c840566b6ad97a9885ba40dbe093cfd895 Mon Sep 17 00:00:00 2001 From: nprasad2077 <114438461+nprasad2077@users.noreply.github.com> Date: Fri, 14 Apr 2023 16:28:12 -0500 Subject: [PATCH] data collection fix --- db.sqlite3 | Bin 135168 -> 143360 bytes {nba_stats => nbaStats}/__init__.py | 0 {nba_stats => nbaStats}/asgi.py | 0 {nba_stats => nbaStats}/settings.py | 0 {nba_stats => nbaStats}/urls.py | 3 +- {nba_stats => nbaStats}/wsgi.py | 0 nba_data/scraper.py | 62 ++++++++++++++-------------- nba_data/urls.py | 6 +++ 8 files changed, 40 insertions(+), 31 deletions(-) rename {nba_stats => nbaStats}/__init__.py (100%) rename {nba_stats => nbaStats}/asgi.py (100%) rename {nba_stats => nbaStats}/settings.py (100%) rename {nba_stats => nbaStats}/urls.py (90%) rename {nba_stats => nbaStats}/wsgi.py (100%) create mode 100644 nba_data/urls.py diff --git a/db.sqlite3 b/db.sqlite3 index 53d894cadf4fc706ac4760030bb52160db0211cc..86c7de0ba6e3e014f6b3564f06782e5b8e6622b3 100644 GIT binary patch delta 5553 zcmaKw-)|gO701W<9mmerxZ429!X%*$rTAv%&TkT7o%7Eg zeAxQv>B^0BXJ=dgbX?~Hr}fL${K-#Fo|*l0_WaCmW?nh*+Y=Y2e>c5w{MqsB*k6y` zJo>kz*N^<;$i2h=I=ph|KZiCC{_o)Cf&U&@pZaWSYwCdW!ADQNTR%G6an8@pwc7LZ z&1Jvl?cd$}NBz>h+b>u8K@g^a_Ee-*7OPZ+e(I@At5^j()yfN%R$&sTF!ekY^GL-} zW|l{R@*>47Kk$5&`AR3s-*h|9%k^9f(e3AmZeQ*q`Ci@~7S%wfiKhb%_w_1Y z=@lC~3$rlP7#OH15!1uaSICW25QkdvgfWUm8oQAdsWb=}SzTBP8lFNfs_9h48(%S? z&$Z|4=c0Z&FUt-0YE=|vpyM=7kpRS5qS(~OjFfw1C%*F85xJp?Lh+5K5*4T5%&EpB-EJ1;FkkQXM+0{;@2xy6 zdcB1^{Rf4P<4nis0+qr9v_rAodLWhE1Lzisq$mXwzEvUwKwl$U_y{N<1o^T|1zV?g z{BJdA?^2|FsT{8M@xf)Z86X|u0kli`eFDUh2du&dbnuw)h5V5Kf>XrBFd&TKAs#~- zG&PDqPSk-V%HR4j?1z6qu}1;0Ar`-1yk5co8~Iu>2%^QFy?P8q0ZD2e|}pzQJ-)xOLkB)(wb^o*bO- zIN#de=v&?8)x7ADTrj#?xYw7k+-N>q$Bo6YLls2{mSS*hPO(}ArCh)`&OmG*2 z0hibhE@pt`V3be{HoqWT-`DY!73yi}-YmQI4_Ai>*JKI6CUa(_6>+YHael=1l1Bj* zY1BZo2#MA)_MS0{GzwE`AI)ti_zBh#+Rfk9oWi!)%d7i3jQm=QafApz#Lak{!a)Yh z*qdF+5k-E0xR zQkLY@>({UAH1u?YaI#uV;gRBHY)5`vV;XS|&mwfl#84(!iZp3hjK`T3D6pL#f<*k@ z2@_uX$Zyj`l*Mq>{a#*mixo`^6?9#P&X<}(!pc);zX$Q%$ z>@UGZg(HCc8ew9w>76_*m2$}kc(V%8NVM6FPaK$`+SV~!*0wvB-BI2qx2_evzT31= z0m)QL?u7Qx3Hv-84*kfJI<4`jbSohxB+P7=1Wkxi0Vo2iZSJ8Pno8yfA0ORrpBvzJ z;orVeb(h_%{fZPDcySt$)>ICS4*A*3QtZl#}0 zrLa(hgdVBV{1{z8gh2GMVe_yF`$qUIvUfOu^V^HPZaJj7Jt%t8zDw5#fv6;;4|+$A zW+tPJC&<6dvbj{AnA|Kqt|&{)0lh>g0}&ppc;nDE?h}<|OuIYkhH{ri%lC_l9)*lY z$BF@DS6rRhyankJJjuTJJj}pfat@a?tcZe_#3|tc@&p|Z0EU)3c;XyvEEki_W%*}0 z-?mAIW@e=*sa`2guy?=-qEj9yGAsoH566UoO`BoHFUU^X2}1Ip5F^ zm|zqv8>`3n<2mTSG+q!5CN9{t@v5~KBb&>98FF&QSgQJRmMptPk9QelM6~BJQ5Q(s z!|9M*`guSAz(o2Y%ojWfeh7h$Qi9BYS!*x7gnsz-=k$AsZ~opG)!njm7yH;6^WH+l zlF6hA31weGk#>ZNCt=PUB|6N=6Osc-g*cZHxT2&Lj_o{Vng8&DNR}5k6IM?+S>09c zn`_;AxGL?G1RvY5Dan-`xSFM+7%MwxU>zp4iN-Q~^px{Yu9P_DUYx zyp;Efk^)=}`{lw?ZBmj?20{gCHgKWsX(?z@-oTX+Dy00&QHP807cMZe$q1)27EhUC zlKlAP?IJi~`&a|ccK5r*JMXx+`c=*0F7SMyH~Ek#17;6kDF&1wDNm*_3c-y~!ir?I zJr8W#F(wc29YAe`iBG&1EF%nwmguHs}jI4D{r|_|f^#eP?*7S3Hsv)@abzypzy1(M?h?qC+`5N?T#= zrm|57D0H;GpnyWWLPC&KY!;czQUWhfs-w+wpWAa^e%R$eh3Dl=3F!!}R9ypSgyU05 lD8_CM6wFD@lNW}(wW8XXS17*JIvfN?4cX8et!(EU{T~=lCmH|% delta 72 zcmV-O0Jr~u;0S=A2#^~EDF6TfA(0?I0V%Oy6)yn-gLW^sb}s>n&{5B9T5)?5tpGK0u-0C9|BFm{1Sx# diff --git a/nba_stats/__init__.py b/nbaStats/__init__.py similarity index 100% rename from nba_stats/__init__.py rename to nbaStats/__init__.py diff --git a/nba_stats/asgi.py b/nbaStats/asgi.py similarity index 100% rename from nba_stats/asgi.py rename to nbaStats/asgi.py diff --git a/nba_stats/settings.py b/nbaStats/settings.py similarity index 100% rename from nba_stats/settings.py rename to nbaStats/settings.py diff --git a/nba_stats/urls.py b/nbaStats/urls.py similarity index 90% rename from nba_stats/urls.py rename to nbaStats/urls.py index 505bd88..970cf52 100644 --- a/nba_stats/urls.py +++ b/nbaStats/urls.py @@ -15,8 +15,9 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import path +from django.urls import path, include urlpatterns = [ + path('', include('nba_data.urls')), path('admin/', admin.site.urls), ] diff --git a/nba_stats/wsgi.py b/nbaStats/wsgi.py similarity index 100% rename from nba_stats/wsgi.py rename to nbaStats/wsgi.py diff --git a/nba_data/scraper.py b/nba_data/scraper.py index e755c53..a019d7e 100644 --- a/nba_data/scraper.py +++ b/nba_data/scraper.py @@ -1,10 +1,18 @@ +import os +import sys +import django import requests from bs4 import BeautifulSoup import csv import json -import os -from .models import PlayerData +sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'nbaStats.settings') +django.setup() + +from nba_data.models import PlayerData team = input('What team? ') season = input('What season? ') @@ -26,7 +34,6 @@ rows = table.find("tbody").find_all("tr") # Extract coloumn headers headers = [col.text.strip() for col in header_row.find_all("th")][1:] - # extract rows as dictionaries data = [] for row in rows: @@ -34,14 +41,12 @@ for row in rows: cols = [col.text.strip() for col in cols] row_dict = dict(zip(headers, cols)) data.append(row_dict) - -## locate current directory + +# locate current directory script_dir = os.path.dirname(os.path.abspath(__file__)) -## CSV file - +# CSV file csv_output_path = os.path.join(script_dir, '..', 'data', 'output.csv') - with open(csv_output_path, "w", newline="") as csvfile: writer = csv.DictWriter(csvfile, fieldnames =headers) writer.writeheader() @@ -49,34 +54,31 @@ with open(csv_output_path, "w", newline="") as csvfile: writer.writerow(row) # Save as JSON - json_output_path = os.path.join(script_dir, '..', 'data', 'output.json') with open(json_output_path, 'w') as jsonfile: json.dump(data, jsonfile) - # save data to database - for row in data: player_data = PlayerData( - name=row['name'], - age=row['age'], - games=row['games'], - games_started=row['games_started'], - minutes_pg=row['minutes_pg'], - field_goals=row['field_goals'], - field_attempts=row['field_attempts'], - field_percent=row['field_percent'], - three_fg=row['three_fg'], - three_attempts=row['three_attempts'], - three_percent=row['three_percent'], - two_fg=row['two_fg'], - two_attempts=row['two_attempts'], - two_percent=row['two_percent'], - effect_fg_percent=row['effect_fg_percent'], - ft=row['ft'], - fta=row['fta'], - ft_percent=row['ft_percent'], + name=row['Player'], + age=row['Age'], + games=row['G'], + games_started=row['GS'], + minutes_pg=row['MP'], + field_goals=row['FG'], + field_attempts=row['FGA'], + field_percent=row['FG%'], + three_fg=row['3P'], + three_attempts=row['3PA'], + three_percent=row['3P%'], + two_fg=row['2P'], + two_attempts=row['2PA'], + two_percent=row['2P%'], + effect_fg_percent=row['eFG%'], + ft=row['FT'], + fta=row['FTA'], + ft_percent=row['FT%'], ORB=row['ORB'], DRB=row['DRB'], TRB=row['TRB'], @@ -87,4 +89,4 @@ for row in data: PF=row['PF'], PTS=row['PTS'], ) - player_data.save() \ No newline at end of file + player_data.save() diff --git a/nba_data/urls.py b/nba_data/urls.py new file mode 100644 index 0000000..100434e --- /dev/null +++ b/nba_data/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from .views import get_player_data + +urlpatterns = [ + path('api/player_data/', get_player_data, name='player_data') +] \ No newline at end of file