Open hyeming-king opened 1 year ago
# 크롤링할 주소 설정
url = 'https://namu.wiki/w/%ED%81%AC%EB%A0%88%EC%9D%B4%EC%A7%80%EB%A0%88%EC%9D%B4%EC%8B%B1%20%EC%B9%B4%ED%8A%B8%EB%9D%BC%EC%9D%B4%EB%8D%94/%ED%8A%B8%EB%9E%99/1920' #카트 트랙 랭킹
driver.get(url)
html = driver.page_source # 브라우저가 가지고 있는 정보를 가져옴 soup = BeautifulSoup(html, "html.parser") track_list = soup.select("table.UQjgK8i0._f0b7325cc9e2662864c573d822bf4dca")
track_data_list =[] for track_info in track_list: name = track_info.select("tr")[0] # 코드 가독성을 위해 변수 이름을 좀 더 간단하게 변경 tag = track_info.select("tr")[2] hardness = track_info.select("tr")[3] laps = track_info.select("tr")[4] track_length = track_info.select("tr")[5] direction = track_info.select("tr")[6] playmode = track_info.select("tr")[7] AI = track_info.select("tr")[8]
release_date = track_info.select("tr")[10]
league_track = track_info.select("tr")[11]
license = track_info.select("tr")[12]
nickname = track_info.select("tr")[13]
track_data_list.append(
[
name.text,
tag.text,
hardness.text[3:],
laps.text[1:],
track_length.text[5:],
direction.text[5:],
playmode.text[5:],
AI.text[5:],
release_date.text[5:],
league_track.text[5:],
license.text[4:],
nickname.text[2:]
]
)
columns = ["트랙 이름", "태그", "난이도", "랩", "트랙 길이", "진행 방향", "트랙 분류", "AI 주행", "첫 등장일", "리그 트랙", "라이센스", "약칭"] df = pd.DataFrame(track_data_list, columns = columns) df
## 2. 진행 할 것
- (1) TMI 데이터와 나무위키 데이터 연결
- (2) 트랙에 대한 유저 반응 데이터 스크래핑 시도 (TMI 트랙 리뷰, 커뮤니티)
▲ 하이라이트한 부분 클래스 이름 변경됨! 전부 변경이 필요함
특수 트랙이나 몇 개의 트랙이 다른 테이블 모양을 가지고 있어서 error 발생 이에 일반적인거는 df에 담아서 저장해주었으며, 특수 트랙은 리스트로 담아 저장함 (01_crawling_track.csv, 01_crawling_errortrack.csv)
for 문 및 함수 get_crawl 만들었음
df, error_list=get_crawl()
라고 쓰면 df에는 정상적인 트랙이 error_list에는 특수트랙의 이름이 담김
error list에 담긴 트랙들을 어떻게 처리(엑셀로 손으로 작성? 등) 과 같은 방법 찾아봐야함
위의 내용에서 나무위키에서 데이터 크롤링 할 때 '표를 가져오는 html 부분의 table class 명'은 사이트에서 변경이 발생할 때 변경하면 됩니다. 각 링크별 변경은 아니에요. 일괄 변경이기 때문에 변경 발생시 1회 변경으로 대처하면 될 것 같습니다.
필요한 자료 수집
트랙 메타 데이터
유저 반응 텍스트 데이터