一部のサイトはヘッドレスモードでChromeをブロックします。そのブロックを回避する方法を見ていきます。
診断は、コンピューターとプログラミングのあらゆる側面の鍵です。この記事では、まず、このブロッキングの問題に自分で対処する方法を示します。これに興味がない場合は、記事の最後にある「ソリューション」の項目に直接移動できます。
ヘッドレスモードで問題が発生した場合は、page.screenshot()でスクリーンショットを撮り、何が起こっているかを確認してください。これにより、少なくとも、「通常の」(管理された)ブラウザーモードで表示されているのと同じ可視コンテンツを扱っているかどうか、および何も理解せずにスクリプトが壊れているために動かなくなっているかどうかがわかります。
この例では、サーバー自体は対応するWebページも送信しませんでした。
最初の答えは「アクセスが拒否されました」ページで、ヘッドレスモードのChromeで取得できるのはそれだけです。制御された方法では起こりません。
, , . , , , . , , , . , , .
? , , , , . , - . , -, , , . , , . – , .
HTTP-
( ) Chrome, headless-, Chrome, «» , , , , . , . , HTTP- (-), , headless-, , . http://scooterlabs.com/echo.json JSON-, , .
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch({
});
const page = (await browser.pages())[0];
const response = await page.goto('http://scooterlabs.com/echo.json');
console.log(await response.json());
await browser.close();
})()
headless- ( ), «» ( headless:false ), , , .
time_utc – , . , , – , .
Accept-Language headless-. , - ( ), , . , – User-Agent.
User-Agent . , headless- :
Chrome , «Headless». User-Agent , . , , .
User-Agent - . , , .
( , )
, User-Agent. page.setUserAgent(). Chrome «» , , , : «Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36».
これですべてです。これが、診断アプローチ自体がこの決定よりも重要である理由です。これらのあらゆる種類の障害は、サイトを自動化しようとすると常に発生し、インターネットでは特定の答えを見つけることができないことが多いため、自分で対処する必要があります。幸運を祈ります。ご不明な点がございましたら、お気軽にお問い合わせください。