I have the same problem with bing, so i'm trying an another solution.
I'm trying to parse their HTML content like a human. Their website's HTML had some limitations, so i scraped their mobile version.
If any, that's the code i used(using Jsoup and apache http components) in java:
DefaultHttpClient client = new DefaultHttpClient();
client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0 (Windows NT 6.2; rv:9.0.1) Gecko/20100101 Firefox/9.0.1");
client.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.IGNORE_COOKIES);
int page = 0;
String surl = "http://m.bing.com/search/search.aspx?A=webresults&Q=" + URLEncoder.encode("site:www.facebook.com/ +\"?sk=info\"+\"new york\"+\"Bar\"", "UTF-8") + "&D=Web&SI=" + (page * 10) + "&PN=" + (page);
HttpGet get = new HttpGet(surl);
InputStream content = client.execute(get).getEntity().getContent();
Document doc = Jsoup.parse(content, "UTF-8", "http://www.bing.com/");
Elements elements = doc.select(".s15 a");
for (Element e : elements) {
String url = e.attr("href");
int v = url.indexOf("REDIRURL=");
if (v > 0) {
url = url.substring(v + 9);
url = url.substring(0, url.indexOf("&"));
url = URLDecoder.decode(url, "UTF-8");
} else {
break;
}
System.out.println(url + " : " + e.text());
}