使用rvest进行R刮擦,将其视为移动设备而非计算机设备

时间:2017-09-22 06:17:16

标签: r web-scraping rvest

我想用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
显然,服务器认为我正在使用移动连接!

不幸的是,这个页面有中文,"体育"意味着"体育" 当我给我的学生上课时,我发现了这个问题。

0 个答案:

没有答案