2017-01-06 2 views
-5

저는 인터넷에서 자료를 긁어 모으기에 새로운 개념으로 도움이 필요합니다.Python 또는 R (초급)을 사용하여 웹 사이트에서 데이터 스크랩

문제 : 저는 ~ 2000 명의 크리켓 선수 이름을 가진 스프레드 시트를 가지고 있습니다. 특정 사이트 (ESPN cricinfo)에서 각 플레이어 이름을 검색하면 각 플레이어에 대한 사실 파일이 생성됩니다. 각 플레이어에 대해 6 가지 사실을 저장해야합니다.

예 : Google에서 'Ricky Ponting espn cricinfo'를 검색하고 첫 번째 링크를 클릭하면 다음 정보를 페이지 상단에 표시하고 저장하여 다음 6 가지 사실을 저장하고 싶습니다. 각 플레이어는 루프에 있습니다.

Full name Ricky Thomas Ponting 
Born December 19, 1974, Launceston, Tasmania 
Current age 42 years 18 days 
Major teams Australia, Antigua Hawksbills, ICC World XI, Kolkata Knight Riders, Mumbai Indians, Somerset, Surrey, Tasmania 
Batting style Right-hand bat 
Bowling style Right-arm medium 

는 내가 처음 링크를 클릭, 항상 내가 가지고있는 선수 일 것입니다 위의 행을 저장, 검색 ("Player.Name & ESPN & Cricinfo")의 위의 방법 (너 한테)를 생각한다. 이 프로세스를 플레이어 이름의 벡터에 걸친 루프로 코딩하는 방법에 대한 도움이 필요합니다. 누군가이 코드를 도울 수 있습니까? 저는 R과 Python에 접근 할 수 있습니다.

내 접근 방식은 다음과 같습니다. Using VBA in Excel to Google Search in IE and return the hyperlink of the first result을 사용하여 ESPN 사이트의 각 플레이어에 대한 정확한 웹 사이트 이름에 대한 하이퍼 링크를 얻으려고 시도한 다음 온라인에서 찾은 다른 코드를 사용하여 각 하이퍼 링크를 검색하려고했습니다. R과 위의 정보를 마칩니다. 나는 VBA를 여러 시간 동안 혼자 디버깅 해왔다. 좋은/더 빠른 접근법이 있다고 생각한다.

제공 할 수있는 제안/코드에 대해 감사드립니다.

+2

첫 번째 단계 : 파이썬 또는 R을 선택하고 그것을 배우십시오. – furas

+1

그런 다음 freelancer.com이나 비슷한 프로그램에서 프로그래머를 고용하십시오. – furas

+2

하나의 플레이어에 대한 결과를 얻는 R 또는 Python으로 함수 또는 스크립트를 만들도록하십시오. 그런 다음 다시 실행 가능한 예제로 루프를 만드는 방법을 다시 묻습니다. – Wietze314

답변

1

것은 (R)에 당신의 방법에 당신을 돕기 위해 여기있다 :

playerURL <- c("http://www.espncricinfo.com/australia/content/player/7133.html" 
       ,"http://www.espncricinfo.com/australia/content/player/7134.html") 

library(XML) 

getTable <- function(url) 
{ 
doc.html = htmlTreeParse(url, 
         useInternal = TRUE) 
doc.tables = xpathApply(doc.html, "//table[@class= 'engineTable']", xmlValue) 
doc.tables[[1]] 
} 


lapply(playerURL, function(x) getTable(x)) 

것은 구글의 URL의 점점에 몇 가지 추가 정보 :

https://www.r-bloggers.com/web-scraping-google-urls/

관련 문제