2016-11-21 3 views
1

私はこのURLからシェアマーケットで "rvest"パッケージを掻き集めようとしています:http://finans.mynet.com/borsa/canliborsa/#A私は試してみるためにあなたのためのダミーアカウントを作成以下のユーザー名とパスワードは実際のもので、大丈夫です。 私が出ていることは以下の通りです:Rvest Web Scrapingにより空のデータテーブルが列名のみで表示されます

library("rvest") 
library("data.table") 

url<- "http://uyeler.mynet.com/login/login.asp?rurl=http%3A%2F%2Ffinans.mynet.com%2Fborsa%2Fcanliborsa%2F&formname=finans#A" 
session<-html_session(url) 
form<- html_form(session)[[1]] 

login<- set_values(form, "username" ="muharrem_babaogul_1991","password"="q1w2e3") 
submit_form(session,login) 

jumped<-jump_to(session,url = 'http://finans.mynet.com/borsa/canliborsa/#A') 

page<- read_html(jumped) 
page<-html_nodes(page,xpath='//*[@id="canliLeftColumn"]/div[3]/table') 
page<- html_table(page) 
head(page[[1]]) 

そして結果:

[1] Hisse   Hisse   Hisse   Son   Alış   
[6] Satış   %Fark   En Düşük  En Yüksek  AOF   
[11] Hacim (Lot) Hacim (TL) Son İşlem  Ekle/Kaldır 
<0 rows> (or 0-length row.names) 

あなたが見ることができるように、私は、XPathを使用してテーブルに到達することができ、私は列名を取得しますが、どのなし内部のデータ。テーブルは完全に空です。 助けることができる人はいますか? ありがとうございます。

+0

テーブルはjavascriptで生成されます。興味のあるデータは 'data.fdata'というファイルのようですが、安全なページからリクエストする方法がわかりません。この回答を見て:http://stackoverflow.com/questions/40638511/using-rvest-to-grab-data-returns-no-matches/40642507#40642507、これは役立つ可能性があります。 – Dave2e

+0

はい@ Dave2e、データはfdataから来るので、私はそれを得ることができません、今までそれについて知っていませんでした。しかし、それでも私はそれをとにかく削ることはできません。 fdata url([ここ](http://finans.mynet.com/borsa/canliborsadata/data.fdata))もログインが必要です。そして、上の方法(sumbit_formとjump_to)は、ファイルがHTMLファイルではないというread_html(jumped)関数でエラーが発生するため、使用できません。だから私はこの問題を解決するためにこの[link](https://stackoverflow.com/questions/24723606/scrape-password-protected-website-in-r)のソリューションを試してみました。うまくいかない。 – Barsssk

答えて

2

問題を解決しました。 help @ Dave2eに感謝します。私はjump_to関数がデータをスクラップし、$ responseにそれを含むことが分かった。以下のコードは、データを分割したものだけをtxtとしてデータに与えます。

url<- "http://uyeler.mynet.com/login/login.asp?rurl=http%3A%2F%2Ffinans.mynet.com%2Fborsa%2Fcanliborsa%2F&formname=finans#A" 
session<-html_session(url) 
form<- html_form(session)[[1]] 

login<- set_values(form, "username" ="muharrem_babaogul_1991","password"="q1w2e3") 
submit_form(session,login) 


jumped<-jump_to(session,url = 'http://finans.mynet.com/borsa/canliborsadata/data.fdata') 

file<-content(jumped$response,as="text") 
関連する問題