2017-01-06 13 views
-5

私はインターネットからデータを削り取るという概念には新しいので、助けが必要です。PythonまたはR(初心者)を使用してウェブサイトからデータをスクラビング

問題:私はクリケット選手の〜2000名のスプレッドシートを持っています。特定のサイト(ESPN cricinfo)で各プレイヤー名を検索すると、各プレイヤーのファクトファイルが作成されます。私は各プレイヤーに6つの事実を保存する必要があります。

例:Googleが「Ricky Ponting espn cricinfo」とGoogleで最初のリンクをクリックすると、ページの上部に表示される次の情報をスクラップして保存し、これらの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 

私は、最初のリンクをクリックすると、上記の行は、常に私が持っているプレーヤーのために動作します保存、SEARCH(「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だけをデバッグしていますが、すばらしい/早いアプローチがあると思いますか?

ご提供いただけるアドバイス/コードがありがとうございます。 (Rで)あなたの方法であなたを助けるために

+2

最初のステップ:PythonやRを選択し、勉強しなさい。 – furas

+1

freelancer.comなどのプログラマーを雇う。 – furas

+2

RまたはPythonで1人のプレーヤーの結果を取得する関数またはスクリプトを作成してみてください。その後、実行可能な例で、ループを作り直す方法をもう一度尋ねます。 – Wietze314

答えて

1

ここ
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)) 

は、GoogleからのURLのを取得する上でいくつかの余分な情報です:

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

関連する問題