홍홍홍 하하하 안녕하세요 작은 비버 입니다.
요즘들어 왜이렇게 활발하게 운영하냐고요?
왜냐하면 제가 '구글 애드센스'를 신청했기 때문입니다..
- 사실 구글 애드센스 신청이 승인 될 가능성이 적은데 그래도 한 번......혹시나 해서................ 그냥 경험삼아......... 신청해봤습니다.................
- 구글 애드센스 신청하고 2주간 승인 검토가 진행되는데 그 때 동안 1000~1200자 정도의 글을 매일 작성하면 가능성이 쪼콤 높아진다해서 부지런히 쓰는 중입니다...^^
오늘은 작은비버가 학교에서 프로젝트 겸 공부한 내용 'kickstarter'사이트를 이용한 빅데이터 분석에 대해 설명드리려고 합니다.
이번 프로젝트는 저번 사랑스러운 제 팀원들과는 다른 사랑스러운 팀원들과 함께 했습니다.
<하고픈 프로젝트 제안서>
저희는 kickstarter에서 성공한 프로젝트, 실패한 프로젝트의 데이터를 수집해서 어떠한 Feature가 프로젝트 성공여부에 크게 영향을 끼치는지 Decision tree를 이용해 분석해 볼려고 합니다.
분석하고자 하는 데이터는 상품명, 후원자수, 제작자 이름, 목표금액, 실제로 모인 금액, 성공여부(성공 : 1, 실패 : 0), 제작자의 프로젝트 개설횟수, 제작자 지역, 프로젝트 장르, 서포트 금액, 서포트 금액에 따른 구성품을 추출해서 분석하려고 합니다.
자 이제 시작해보자!!!!!!!!!!!!
킥스타터(kickstarter)란?
그 전에 kickstarter를 모르시는 분들이 있을것같아서 설명드리자면 킥스타터는 미국의 크라우드 펀딩 사이트입니다.
우리나라의 텀블벅을 떠올리면 쉽게 이해할 수 있으실 텐데요. 투자자는 관심 있는 프로젝트에 돈을 제공하고 펀딩진행자는 그 금액에 따른 보상을 제공하는 형태입니다. 돈이 아닌 해당 시제품, 감사 인사, 작가와의 식사 등 유무형 형태의 보상을 받는 것이 이 킥스타터의 가장 큰 특징입니다.
1. 분석방법
저희는 크라우드 펀딩 데이터를 수집하여 ‘Decision tree’로 ‘어떤 feature가 프로젝트 성공 여부에 가장 큰 영향을 끼치는지’ 확인해볼 계획입니다. 또한, tree를 만드는 결정에 각 특성이 얼마나 중요한지 평가하는’ feature importance 특성 중요도를’ 이용해 각 특성의 중요도를 확인해볼 계획입니다.
2. 수집방법
1. 성공, 실패한 프로젝트 상세사이트 LINK 수집
각 프로젝트의 상세 페이지로 접근하기 위해 URL수집
- 성공한 프로젝트는 단순 URL 접근으로 링크 크롤링 진행
- 실패한 프로젝트는 로그인한 후, 프로젝트를 saved해야함
- Saved한 프로젝트에서 프로젝트의 실패 여부를 확인할 수 있음
- 모금액이 75% 이하이고 마감기한이 3일 이내인 프로젝트를 saved 하여 그 중 실패한 프로젝트를 수집하였습니다.
- 셀레니움에서 자동 로그인을 하여 saved 된 프로젝트 중 실패한 프로젝트를 가지고 URL 상세 페이지를 크롤링하였습니다.
3. 수집 진행 코드 및 수집 데이터
3-1. 수집하는 코드 일부분(성공한 프로젝트 링크 수집)
number = [1,2,3,4,5,6,7,8,9,10] #세부 사이트 들어가는 링크 크롤링
success_link_list = list()
for i in number:
url="https://www.kickstarter.com/discover/advanced?state=successful&woe_id=0&sort=magic&seed=2653556&page="+str(i)
driver.get(url)
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
a_tags = soup.find_all("a", {'class':"block img-placeholder w100p"})
for line in a_tags :
title=line["href"]
success_link_list.append(title)
print(success_link_list)
3-2. 수집하는 코드 일부분(실패한 프로젝트 링크 수집)
fail_link_list = list()
driver.get('https://www.kickstarter.com/login?ref=nav')
driver.find_element_by_id('user_session_email').send_keys('본인 이메일 아이디')
driver.find_element_by_id('user_session_password').send_keys('비밀번호')
xpath = """//*[@id="new_user_session"]/fieldset/ol/li[3]/input"""
driver.find_element_by_xpath(xpath).click()
url="https://www.kickstarter.com/profile/saved_projects?ref=user_menu"
driver.get(url)
time.sleep(0.2)
body = driver.find_element_by_tag_name("body")
num = 100
while num:
body.send_keys(Keys.PAGE_DOWN)
time.sleep(0.1)
num -= 1
try:
driver.find_element_by_xpath("""//*[@id="react-container"]/div[2]/div[3]/div/button""").click()
except:
None
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
a_tags = soup.find_all("a", {'class':"block img-placeholder w100p"})
for line in a_tags :
title = line["href"]
print(title)
fail_link_list.append(title)
- 로그인을 통해 제가 saved한 프로젝트에서 링크를 수집해야해서 자동로그인을 통해 로그인을 한 후 데이터를 수집하였습니다.
- 저기 로그인 하는 부분에는 본인의 kickstarter의 id 및 비밀번호를 입력하시고 코드 돌리시면 됩니다.
4. 수집된 데이터
- 성공한 프로젝트는 120개, 실패한 프로젝트는 117개 총 237개의 링크를 수집하였습니다.
오늘은 상세사이트 링크를 수집하는 부분에 대해서 적어봤습니다.
내용이 길어 나눠서 설명하려고 합니다..!!
오늘은 이만 작은 비버는 물러나겠습니다!
긴글 읽어주셔서 감사드려요~
[빅데이터] kickstarter에서 Project에 큰 영향을 미치는 Feature 확인하기(2. 전체 feature 수집 및 특정 feature 추출)
https://beaver-sohyun.tistory.com/52?category=864438
'작은비버의 성장과정 > 과제 및 성장기' 카테고리의 다른 글
[빅데이터] kickstarter에서 Project에 큰 영향을 미치는 Feature 확인하기(3. Decision tree를 이용한 데이터 분석) (0) | 2020.09.01 |
---|---|
[빅데이터] kickstarter에서 Project에 큰 영향을 미치는 Feature 확인하기(2. 전체 feature 수집 및 특정 feature 추출) (0) | 2020.08.31 |
[프로젝트]주제 Hate Speech Detection_2020(++ 실험 결과, Word Attention visualization) (1) | 2020.06.03 |
[프로젝트]코로나19에 대한 사회적 반응[지하철 승객 수의 변화] (0) | 2020.05.10 |
공공데이터 API를 사용한 데이터 추출 (1) | 2020.05.01 |