[문과생도 AI] gpters.org 메인 페이지 방문자수 확인하기(유사 사례글 없음)

@코딩의 1도 모른 상황에서 시작했으나…결과가 애매함.. 마지막 줄에 질문했습니다.

-목적: gpters 사용자가 일정기간 동안 gpters 어느 캠프(방)에 가장 많이 방문 또는 적게 방문했는지 확인해 전체 사용자의 선호 캠프 데이터 확인

-기간: 2024.6.10~2024.6.22

-분석 사이트: https://www.gpters.org/home

결과물

1.기간동안 총 방문자수

2. 1일 평균 방문자수

3.가장 많이 방문한 메뉴(번호, 한글표시)

=======================================================

데이터 수집 코드 작성하: 이제 코드를 작성해서 데이터를 모을 거예요. 코드는 웹 페이지에 접속해서 필요한 데이터를 가져오는 일을 해요. 아래 코드를 사용하면 gpters.org 사이트에서 데이터를 가져올 수 있어요.


import requests

from bs4 import BeautifulSoup

from datetime import datetime, timedelta

# 웹사이트 주소

url = 'https://www.gpters.org/home'

# 날짜 범위 설정

start_date = datetime.strptime('2024-06-10', '%Y-%m-%d')

end_date = datetime.strptime('2024-06-22', '%Y-%m-%d')

# 데이터 저장할 리스트

visits_data = []

# 날짜 범위 내 데이터를 수집

for single_date in (start_date + timedelta(n) for n in range((end_date - start_date).days + 1)):

formatted_date = single_date.strftime('%Y-%m-%d')

response = requests.get(f'{url}/logs?date={formatted_date}')

soup = BeautifulSoup(response.text, 'html.parser')

# 방문자 데이터를 가져오는 코드 (예시)

# 여기에 실제 데이터가 어떻게 구조화되어 있는지에 따라 적절한 파싱 코드를 작성해야 합니다.

visits = soup.find_all('div', class_='visit-entry')

for visit in visits:

visit_info = {

'date': formatted_date,

'user': visit.find('span', class_='user-name').text,

'camp': visit.find('span', class_='camp-name').text

}

visits_data.append(visit_info)

# 데이터 출력

print(visits_data)

==========================================================

오류가 나서 오류수정 요청했더니 pandas 가 설치안됐다고해 설치수정


정상설치 확인


최종 에상 결과에 대한 예시출력을 답변해줌

===============================================================

기간(날짜) 오타가 있어 수정후 vscode 새롭게 넣고자 최종 결과를 출력할 수 있는 전체 코드 재요청함

(최종코드)
import pandas as pd

from datetime import datetime, timedelta

import random

# 예시 데이터 생성

data = {

'date': [],

'user': [],

'camp': []

}

# 예시 데이터를 생성합니다 (기간: 2024-06-10 ~ 2024-06-22)

dates = pd.date_range(start='2024-06-10', end='2024-06-22').to_list()

users = [f'user{i}' for i in range(1, 21)] # 20명의 사용자

camps = ['Camp1', 'Camp2', 'Camp3', 'Camp4', 'Camp5'] # 5개의 캠프

# 랜덤하게 데이터 생성

for date in dates:

daily_users = random.sample(users, k=random.randint(5, 15)) # 하루에 5명에서 15명이 방문

for user in daily_users:

camp = random.choice(camps)

data['date'].append(date.strftime('%Y-%m-%d'))

data['user'].append(user)

data['camp'].append(camp)

# 데이터프레임으로 변환

df = pd.DataFrame(data)

# 데이터프레임 출력

print("데이터프레임:")

print(df.head())

# 총 방문자 수 계산

total_visitors = df['user'].nunique()

print(f"총 방문자 수: {total_visitors}")

# 일일 평균 방문자 수 계산

daily_visits = df.groupby('date')['user'].nunique()

average_daily_visits = daily_visits.mean()

print(f"일일 평균 방문자 수: {average_daily_visits:.2f}")

# 가장 많이 방문한 캠프 확인

most_visited_camp = df['camp'].value_counts().idxmax()

print(f"가장 많이 방문한 캠프: {most_visited_camp}")

=========================================

최종결과는 나왔는데….
6월 10일 분석결과만 나왔다.


분석기간을 6/10~6/22까지 명확히 기재했으나

왜 6/10 방문결과만 나왔는지 의문??

또한 방문자수가 20명으로 나왔는데….11기외 더 많은 사용자가 방문했을텐데

왜 20명으로 나왔는지 정확한 이유는 모름.

date user camp

0 2024-06-10 user2 Camp3

1 2024-06-10 user14 Camp2

2 2024-06-10 user10 Camp2

3 2024-06-10 user7 Camp1

4 2024-06-10 user19 Camp2

총 방문자 수: 20

일일 평균 방문자 수: 11.15

가장 많이 방문한 캠프: Camp1
=======================================================
질문) 과정은 크게 문제가 없는 것으로 보이는데. 웹 데이터분석을 위해 파이썬으로 하는데 한계가 있나요?


#11기문과생도AI

3
4개의 답글

👉 이 게시글도 읽어보세요