

duckduckGoの検索結果をロケーションを日本にした場合で取得できるようになりたいです。

node.jsのcheerio-httpcliを使ってduckduckGoの検索結果をスクレイピングしました。  
しかし帰ってくる結果はロケーションを日本にした場合と異なる結果でした

[code]

    **「虫歯 原因」の検索結果（現状）**
    
    巨大虫歯に挑む - YouTube
    虫歯治療 - YouTube
    Eeデンタル【虫歯が原因で大量の膿!】 でも抜かない根管治療専門医
    角化嚢胞性歯原性腫瘍 - Wikipedia
    
[/code]

[code]

    **ロケーションを日本に指定した場合の検索結果**
    
    虫歯ができる7つの原因と自分にあった予防法
    虫歯の原因は？虫歯はどうしてできるの？ | 水天宮・人形町の ...
    虫歯になりやすい習慣・環境とは？原因や検査、セルフ ...
    虫歯の原因とは？歯を磨いてるのになぜ虫歯になるの？
    
[/code]

上記のように今のままだと中国語やキーワードによってはロシア語？が混じった検索結果が帰ってきます。

[code]

    現状のソースコード(Express.js)
    const client = require('cheerio-httpcli'),
      $ = require('jquery'),
    　targetURL = 'https://duckduckgo.com/html';
    
    async function duckGo (keyword) {
      return await client.fetch(targetURL, { q: keyword })
        .then(result => {
               //返ってきたDOMをトリムする処理が入っている
               ...
            }); 
            return duckObj;
        })
        .catch((err) => {
            console.log(err);
        })
    }
    exports.duckGo = duckGo
    
[/code]

おそらくheadersの情報を変更すれば行けるのかな。と考えfetch()の直前に

client.set('headers', {  
'x-duckduckgo-locale': 'ja_JP'  
});

上記のコードを入れてみましたが結果は変わらずです。実は違うタイトルでteratailsでも質問させていただいたのですが、２日待っても回答を得られずこちらでも質問させていただいた次第です。（タイトルと質問内容も少し変えて質問しました）

**他に試したこと**  
パラメータを追加してみましたがダメでした。

**備考**  
<https://duckduckgo.com/html/>  
上記はduckduckGoの検索結果を静的サイトとして表示できるリンクです。通常の検索結果は動的サイトとして表示されるためcheerioでスクレイピングできません。

ブラウザからみた場合のヘッダー情報

[code]

    **General**
    Request URL: https://duckduckgo.com/html/
    Request Method: POST
    Status Code: 200 
    Remote Address: 54.254.135.186:443
    Referrer Policy: origin
    
    **Response Headers**
    access-control-allow-origin: https://duckduckgo.com
    access-control-expose-headers: 
    cache-control: max-age=1
    content-encoding: br
    content-security-policy: default-src https: blob: data: 'unsafe-inline' 'unsafe-eval'; frame-ancestors 'self'
    content-type: text/html; charset=UTF-8
    date: Sun, 24 May 2020 03:52:22 GMT
    expect-ct: max-age=0
    expires: Sun, 24 May 2020 03:52:23 GMT
    referrer-policy: origin
    server: nginx
    server-timing: total;dur=349;desc="Backend Total"
    status: 200
    strict-transport-security: max-age=31536000
    vary: Accept-Encoding
    x-content-type-options: nosniff
    x-duckduckgo-locale: ja_JP
    x-frame-options: SAMEORIGIN
    x-xss-protection: 1;mode=block
    
    **Response Headers**
    :authority: duckduckgo.com
    :method: POST
    :path: /html/
    :scheme: https
    accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    accept-encoding: gzip, deflate, br
    accept-language: ja,en-US;q=0.9,en;q=0.8
    cache-control: max-age=0
    content-length: 42
    content-type: application/x-www-form-urlencoded
    cookie: kl=jp-jp; ah=jp-jp%2Cth-th; l=jp-jp; kl=ja-ja
    origin: https://duckduckgo.com
    referer: https://duckduckgo.com/
    sec-fetch-dest: document
    
[/code]


CC BY-SA 4.0
2020-05-26T06:59:06.170
66999
2020-05-26T07:27:59.837
2020-05-26T07:27:59.837
40000
40000
question
javascript node.js web-scraping
検索エンジンduckduckGoの検索結果でロケーションを日本にしてスクレイピングしたい(node.js)