私の Node.Js アプリでは、Google 検索結果の最初のページを.com
ドメインから取得する必要があり"People also search for"
ます。これは、Google.Com にのみ表示されるナレッジ グラフ情報が必要なためです。
request
とモジュールを使用してcheerio
Google の検索結果ページからコンテンツを削除できると考えましたが、必要な URL にアクセスしようとすると、https://www.google.com/search?gws_rd=ssl&site=&source=hp&q=google&oq=google
Google は自動的に.de
ドメインにリダイレクトします (私はドイツに拠点を置いているため)。
http://www.google.com/ncr
ブラウザで国固有のリダイレクトを自動的にオフにする URLを最初に読み込むように設定しようとしましたが、うまくいきませんでした...
それを機能させるために私が別の方法でできることを誰かが知っていますか?
これが私のコードです...ありがとう!
var request = require("request");
var cheerio = require("cheerio");
function dataCookieToString(dataCookie) {
var t = "";
for (var x = 0; x < dataCookie.length; x++) {
t += ((t != "") ? "; " : "") + dataCookie[x].key + "=" + dataCookie[x].value;
}
return t;
}
function mkdataCookie(cookie) {
var t, j;
cookie = cookie.toString().replace(/,([^ ])/g, ",[12],$1").split(",[12],");
for (var x = 0; x < cookie.length; x++) {
cookie[x] = cookie[x].split("; ");
j = cookie[x][0].split("=");
t = {
key: j[0],
value: j[1]
};
for (var i = 1; i < cookie[x].length; i++) {
j = cookie[x][i].split("=");
t[j[0]] = j[1];
}
cookie[x] = t;
}
return cookie;
}
var dataCookie = mkdataCookie('MC_STORE_ID=66860; expires=' + new Date(new Date().getTime() + 86409000));
request({
uri: "https://www.google.com/ncr",
headers: {
'User-Agent': 'Mozilla/5.0',
"Cookie": dataCookieToString(dataCookie)
}
}, function(error, response, body) {
request({
uri: "https://www.google.com/search?gws_rd=ssl&site=&source=hp&q=google&oq=google",
headers: {
'User-Agent': 'Mozilla/5.0'
}
}, function(error, response, body) {
console.log(body);
var $ = cheerio.load(body);
$(".kno-fb-ctx").each(function() {
var link = $(this);
var text = link.text();
console.log(text);
});
});
});