Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 卷曲柱形_R_Curl_Rcurl - Fatal编程技术网

R 卷曲柱形

R 卷曲柱形,r,curl,rcurl,R,Curl,Rcurl,我想发布一个表单并使用返回的数据 我想得到的数据是: 我忽略了什么?我认为我做的一切都是正确的,但是服务器没有响应我的请求为什么你说服务器没有响应?您的状态为200(正常),响应长度为182000字节 该职位申请工作正常。您的问题在于: cikti <- cikti[cikti$span == "AKTİF TOPLAMI" | cikti$span == "A K T İ F T O P L A M I"]; 您可以使用 span <- iconv(span,from="UT

我想发布一个表单并使用返回的数据

我想得到的数据是:


我忽略了什么?我认为我做的一切都是正确的,但是服务器没有响应我的请求

为什么你说服务器没有响应?您的状态为200(正常),响应长度为182000字节

该职位申请工作正常。您的问题在于:

cikti <- cikti[cikti$span == "AKTİF TOPLAMI" | cikti$span == "A K T İ F T O P L A M I"];
您可以使用

span  <- iconv(span,from="UTF-8",to="")
而是使用:

cikti <- cikti[span == "AKTİF TOPLAMI" ...]

cikti如果您不想弄乱编码,httr和rvest会自动为您处理:

res <- POST("http://www.bigpara.com/analiz/mali-tablolar/",
  body = list(
    Yil = "2013", 
    Donem = "4", 
    Kur = "TL", 
    Cins = "1", 
    HisseKod = "FENER"
  ),
  encode = "form"
)

mali_table <- html(res) %>% html_nodes("div.maliTable li")

span <- mali_table %>% html_nodes("span") %>% html_text()

small <- mali_table %>% 
  html_nodes("small") %>% 
  html_text() %>%
  gsub("\\.", "", .) %>%
  as.numeric()

selected <- span %in% c("AKTİF TOPLAMI", "A K T İ F   T O P L A M I")

data.frame(
  span = span[selected],
  small = small[selected]
)
res%html\u text()
小%
html_节点(“小”)%>%
html_text()%>%
gsub(“\\.”、“,)%>%
as.numeric()

是的,关于反应你是对的。我想在那里签一行“*Connection#0到www.bigpara.com的主机保持不变”。实际上,服务器返回一个响应,但当我更改变量“sirket”时,返回值并没有改变。如果您输入该链接并手动发送帖子,表将更改。但当我用R发布表单时,返回的页面总是一样的。发布表单不起作用。我忘了添加。例如,您可以尝试使用“FROTO”和“FENER”来比较它们。函数将返回相同的值,但它们不是。我仍然有相同的问题:当输入到页面时,默认页面是:Hisse:DOHOL,2014,9,TL,Standart,这意味着(Yil=“2014”,Donem=“3”,Kur=“TL”,Cins=“1”,HisseKod=“DOHOL”),以便返回值。我在R中更改这个值并发送表单。但我仍然得到相同的输出。例如,您可以尝试更改“Yil”变量。2012年或2011年。输出将是相同的,因为post表单不以这种方式工作。嗯,您需要诊断浏览器的不同之处-我建议您学习如何在浏览器中使用web inspector。当你不说这种语言的时候,很难理解一个网站是如何工作的。在你说了这些之后,我用PHP尝试了一下,它成功了。当我将2013年发布为“Yil”值时,它返回2013页,但在R中,它返回的都是同一页(DOHOL,2014,3,TL,1)。因此,我认为我的问题不在于HTML,而在于在R@Sab中使用HTML的方式。我对此表示怀疑——更可能的是,PHP使用了不同的curl默认值,因此它给出了不同的行为。在R和PHP中打开详细输出并比较请求。
span  <- iconv(span,from="UTF-8",to="")
cikti <- cikti[cikti$span == "AKTİF TOPLAMI" ...]
cikti <- cikti[span == "AKTİF TOPLAMI" ...]
a <- postForm("http://www.bigpara.com/analiz/mali-tablolar/",
              Yil = "2013", Donem = "4", Kur = "TL", Cins = "1", Submit = "Getir",
              HisseKod = sirket)
a <- htmlParse(a)
span  <- xpathSApply(a, "//div[@class='maliTable']//li//span", xmlValue)
span  <- iconv(span,from="UTF-8",to="")  
small <- xpathSApply(a, "//div[@class='maliTable']//li//small", xmlValue)
small <- gsub("[.]","",small)
small <- as.numeric(small)
cikti <- data.table(span, small)
cikti <- cikti[span == "AKTİF TOPLAMI" | span == "A K T İ F   T O P L A M I"] 
cikti <- cikti[order(-small)]                             
cikti <- cikti[1,]$small
res <- POST("http://www.bigpara.com/analiz/mali-tablolar/",
  body = list(
    Yil = "2013", 
    Donem = "4", 
    Kur = "TL", 
    Cins = "1", 
    HisseKod = "FENER"
  ),
  encode = "form"
)

mali_table <- html(res) %>% html_nodes("div.maliTable li")

span <- mali_table %>% html_nodes("span") %>% html_text()

small <- mali_table %>% 
  html_nodes("small") %>% 
  html_text() %>%
  gsub("\\.", "", .) %>%
  as.numeric()

selected <- span %in% c("AKTİF TOPLAMI", "A K T İ F   T O P L A M I")

data.frame(
  span = span[selected],
  small = small[selected]
)