我一直在尝试从这个网址使用inf“rvest”包抓取股票市场:http://finans.mynet.com/borsa/canliborsa/#A这需要注册。我创建了虚拟帐户供您尝试。下面的用户名和密码是真实的并且可以正常工作。 我得出的结论如下:
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 访问该表,我获得了列名,但内部没有任何数据。 table 完全是空的。 有谁可以帮忙吗? 提前致谢。
最佳答案
问题已解决。感谢您的帮助@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")
关于html - Rvest 网页抓取带来仅包含列名称的空数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40723875/