다음 웹 사이트에서 데이터를 가져 오는 데 문제가 있습니다. 내 브라우저를 통해 long_url에 가면 내가 긁고 싶은 표를 볼 수 있지만 httr을 사용하여 R 내에서 URL을 호출하면 데이터가 반환되지 않습니다. 그것은 나에게 돌려 보내지고있다. 이러한 POST 요청의httr POST 요청을 구조화하는 방법 사이트 데이터를 반환 하시겠습니까?
base_url <- "http://web1.ncaa.org/stats/exec/records"
long_url <- "http://web1.ncaa.org/stats/exec/records?academicYear=2014&sportCode=MFB&orgId=721"
library(XML)
library(httr)
library(rvest) # devtools::install_github("hadley/rvest")
결과는
doc <- POST(base_url, query = list(academicYear = "2014", sportCode = "MFB",
orgId = "721"))
doc <- POST(long_url)
class(doc)
두 POST 요청
200 상태 코드를 반환, 나에게 동일하게보고, 문서의 클래스는 "HTMLInternalDocument"와 "XMLInternalDocument"입니다 내가 페이지를 긁을 수있게 해주는 보통의 R 오브젝트. 그러나 URL에 테이블이 있다는 것을 알고 있더라도 다음 rvest 및 XML 함수는 비어 있습니다.table <- html_nodes(doc, css = "td")
table <- readHTMLTable(doc)
누군가 내 httr 요청이 누락되었습니다. 나는 또한 운이없는 GET 요구를 시도했다.
FYI httr는 사용자 에이전트를 설정합니다. – hadley
@hadley 정말요? 무엇을? 이 경우 OP의 코드가 작동하지 않는 이유가 있지만 사용자 에이전트를 명시 적으로 설정하면 어떤 생각일까요? – jlhoward
그것은'httr/RCurl/R'과 같은 것으로 설정하기 때문에 서버가 UA 스니핑을하는 경우 알려진 것과 일치하지 않습니다. – hadley