MATLAB urlread不适用于特定网页

时间:2015-11-12 21:47:36

标签: matlab web-scraping urlread

我正在尝试使用MATLAB中的urlread()函数来抓取网页,尽管我遇到了一个我以前没见过的问题。当我运行代码时

X = urlread('http://espn.go.com/mens-college-basketball/schedule/_/date/20141114');

我收到错误

Error using urlreadwrite (line 92) The server did not find a resource to match this request.

Error in urlread (line 36) [s,status] = urlreadwrite(mfilename,catchErrors,url,varargin{:});

当我尝试访问浏览器上的链接(http://espn.go.com/mens-college-basketball/schedule/_/date/20141114)时,访问该页面时没有任何问题。有没有人有解决这个问题的方法?

3 个答案:

答案 0 :(得分:5)

该网站似乎阻止了http请求中的默认MATLAB Rxxxxx user-agent参数。

伪造用户代理似乎解决了这个限制:

x = urlread('http://espn.go.com/mens-college-basketball/schedule/_/date/20141114', 'UserAgent', 'Mozilla/5.0');

答案 1 :(得分:0)

这对我没用,但确实如此。

URL = 'http://espn.go.com/mens-college-basketball/schedule/_/date/20141114';
str = urlread(URL,'Get',{'term','urlread'});

答案 2 :(得分:0)

虽然我认为r和Python在网页抓取练习方面要好得多。

这是一个效果很好的R脚本。

library(rvest)
rawhtml <- read_html("http://espn.go.com/mens-college-basketball/schedule/_/date/20141114")
rvested <- rawhtml %>% 
    html_nodes("table") %>%
    html_table(fill = TRUE) %>%
    .[[1]]