2014-11-05 5 views
1

이러한 프로그래밍 작업에는 익숙하지 않으며 임베디드 시스템에 익숙하지 않습니다. 나는 아주 작은 웹 프로그래밍 XP가있다.CSV에 대한 웹 사이트 데이터 스크랩

웹 사이트는 (danglefactory.com) 내가 처리를 위해 CSV로 다운로드하려는 통계의 큰 테이블이 있습니다 : 내가 달성하고 싶은 무엇

. 웹 사이트에는 cvs를 만들고 다운로드 준비를위한 내부 스크립트를 호출하는 버튼이 있습니다.

리퍼러 http://www.danglefactory.com/projections/skaters/daily

스크립트 http://www.danglefactory.com/scripts/copy_csv_xls.swf

나는 파이썬 솔루션을 선호, 그 중 하나가 온도 또는 처리를 위해 로컬 저장이 CSV를 가져올 수있을 것입니다.

감사합니다.

+0

나는 그 csv를 잡는 방법을 모르지만, JSON 호출을 할 수있다. 그리고 JSON을 csv로 전송하는 것보다. –

답변

0

첫 번째 접근 방식은 꽤 낮은 수준입니다.

아래에는 requests과 같이 시뮬레이트 할 수있는 JSON API 호출이 있습니다. 그에 따라 csv 모듈을 사용하여 CSV로 결과를 변환 할 수 있습니다,

[{u'A': 0.61, 
    u'Blocks': 0.37, 
    u'Corsi': 0.53, 
    u'FOL': 9.07, 
    u'FOW': 8.95, 
    u'FOWinPerc': 49.6, 
    u'G': 0.39, 
    u'Giveaways': 0.89, 
    u'Hits': 0.54, 
    u'Name': u'John Tavares', 
    u'Opponent': u'ANA', 
    u'P': 0.99, 
    u'PIM': 0.51, 
    u'PPA': 0.24, 
    u'PPG': 0.11, 
    u'PlayerID': 411, 
    u'PlusMinus': 0.05, 
    u'PrimaryPosition': u'C', 
    u'SHA': 0.0, 
    u'SHG': 0.0, 
    u'ShPerc': 12.6, 
    u'Shots': 3.1, 
    u'TOI': 20.39, 
    u'Takeaways': 0.82, 
    u'Team': u'NYI'}, 
{u'A': 0.7, 
    u'Blocks': 1.0, 
    u'Corsi': 0.47, 
    u'FOL': 8.69, 
    u'FOW': 8.43, 
    u'FOWinPerc': 49.3, 
    u'G': 0.28, 
    u'Giveaways': 0.84, 
    u'Hits': 1.49, 
    u'Name': u'Ryan Getzlaf', 
    u'Opponent': u'NYI', 
    u'P': 0.97, 
    u'PIM': 0.68, 
    u'PPA': 0.22, 
    u'PPG': 0.07, 
    u'PlayerID': 161, 
    u'PlusMinus': 0.06, 
    u'PrimaryPosition': u'C', 
    u'SHA': 0.04, 
    u'SHG': 0.02, 
    u'ShPerc': 11.9, 
    u'Shots': 2.3, 
    u'TOI': 20.52, 
    u'Takeaways': 0.61, 
    u'Team': u'ANA'}, 

    ... 

}] 

을 다음 :

import requests 

url = 'http://www.danglefactory.com/api/DailySkaterProjections?_=1415200157912' 
response = requests.get(url) 

data = response.json() 
print data 

인쇄 : 여기

당신이 매일 전망을 얻을 수있는 방법이다.


또 다른 해결책은 selenium 브라우저 자동화 도구를 사용하여이 될 수 있지만, 문제는 CSV 버튼과 테이블이있는 selenium cannot interact with 플래시 객체 내부에 있다는 것입니다.


당신은 비록 그 CSV 버튼을 찾아서 클릭 sikuli 같은 이미지 인식 및 화면 자동화 도구를 사용할 수 있습니다. 이것은 여전히 ​​"고급"상태를 유지하려는 경우입니다.

희망이 있습니다.

+1

당신이 이것을 의미한다고 생각합니다 : http://www.danglefactory.com/api/DailySkaterProjections –

+0

@VincentBeltman 예. 감사합니다. – alecxe

+0

제안 해 주셔서 감사합니다. 제공되는 멋진 API를 활용할 수있는 방법이 있어야한다는 것을 알고 있었고, 시작하기 위해 JSON을 원시로 사용하는 것이 얼마나 좋은지 알 수있었습니다. 나는 원래 HTML을 파싱하고 테이블을 긁어 모으려고 시도하고 있었고 나는 당신의 제안을 발견했다. python 솔루션이 요청 되었더라도 신속하게 R로 구현되었습니다. – Neurax

관련 문제