我想用rvest包刮一个网站。
存在一个问题:当您输入web = read_html(" www.somewebsite.com")时,有时您会获得一个针对移动设备的HTML。(因此网址变为m.somewebsite。 COM)
因此服务器将您视为移动设备而非计算机。
有没有办法让服务器把我当作电脑而不是手机?使用移动网站的任何进一步操作都很难。或者我们可以通过某种方式控制请求,以便我们可以控制服务器对待我们的方式吗?有时我们希望被视为移动设备,而有时我们希望被视为计算机。
该方法可能不限于包rvest,我们可以使用httr或Rcurl
由于Kim想要一个例子,我在这里给出了一个具体的例子!
library(rvest)
sina_url = "https://www.sina.com.cn"
sina = html_session(sina_url)
sina_sport = sina%>%follow_link("体育")%>%html_nodes("li:nth-child(1) h2")%>%html_text()
最后一行的回复是:
Navigating to http://m.sina.com.cn/m/sinasports.shtml
显然,服务器认为我正在使用移动连接!
不幸的是,这个页面有中文,"体育"意味着"体育" 当我给我的学生上课时,我发现了这个问题。