如何获取谷歌新闻中找到的页面(来自Curl的用户代理不起作用)?

时间:2012-04-15 16:26:44

标签: r screen-scraping web-scraping rcurl

对于我的项目,我需要获取某个关键字的新闻数量(来自Google新闻)的日常统计信息。但问题是通过浏览器获得的结果与通过RCurl获得的结果完全不同。似乎我错过了一些选择。应该做什么? 非常感谢您的提示!

这里是代码(不是全部,只是rcurl选项),但DPage的内容与浏览器显示的不同:(:

    require(RCurl)
    theURL<-"http://www.google.com/search?tbm=nws&q=Putin&tbs=cdr:1%2Ccd_min%3A09.11.10%2Ccd_max%3A09.11.11&tbm=nws"
    ch <- getCurlHandle()
    curlSetOpt(curl = ch,
               ssl.verifypeer = FALSE,
               useragent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.53.11 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10",
               timeout = 60,
               followlocation = TRUE,
               cookiejar = "./cookies",
               cookiefile = "./cookies") 
DPage <- getURL(theURL, curl = ch)

1 个答案:

答案 0 :(得分:1)

Google有一些防御措施可以防止不使用自定义搜索API的自动请求。尝试使用Bing搜索引擎URL代替您的脚本,它们还为开发人员提供了丰富的自定义搜索API。 http://www.bing.com/news/search?q=putin&p1=[NewsVertical+SortByDate%3d%221%22]&FORM=YGNR

或其complimentry RSS提要,因为这将不提供被阅读的阻力。 http://api.bing.com/rss.aspx?Source=News&Market=en-GB&Version=2.0&Query=putin