So umgehen Sie das Blockieren des Zugriffs auf Seiten mit Chrome im Headless-Modus

Einige Websites blockieren Chrome im Headless-Modus. Wir werden uns ansehen, wie Sie diesen Block umgehen können.



Die Diagnose ist der Schlüssel zu allen Aspekten von Computern und Programmierung. Dieser Artikel zeigt Ihnen zunächst, wie Sie dieses Blockierungsproblem selbst lösen können. Wenn Sie nicht interessiert sind, können Sie direkt zum Punkt "Lösung" am Ende des Artikels gehen.



Wenn Sie Probleme mit dem Headless-Modus haben, denken Sie daran, einen Screenshot über page.screenshot () zu erstellen, um zu sehen, was passiert. Auf diese Weise erfahren Sie zumindest, ob Sie mit demselben sichtbaren Inhalt arbeiten, der im "normalen" (verwalteten) Browsermodus angezeigt wird, und ob Sie aufgrund eines fehlerhaften Skripts festsitzen, ohne etwas zu verstehen.



Bild



In diesem Beispiel hat der Server selbst nicht einmal die entsprechende Webseite gesendet.



Die ursprüngliche Antwort ist die Seite "Zugriff verweigert". Dies ist alles, was Sie erhalten können, wenn Sie Chrome im Headless-Modus ausführen. Was im kontrollierten Modus überhaupt nicht passiert.



, , . , , , . , , , . , , .



? , , , , . , - . , -, , , . , , . – , .



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 ), , , .



Bild



time_utc – , . , , – , .



Accept-Language headless-. , - ( ), , . , – User-Agent.



User-Agent . , headless- :



Bild



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».



Das ist alles dazu. Aus diesem Grund ist der diagnostische Ansatz selbst wichtiger als diese Entscheidung. Diese Hindernisse aller Art treten immer wieder auf, wenn Sie versuchen, Websites zu automatisieren, und häufig finden Sie im Internet keine spezifischen Antworten, sodass Sie sich selbst darum kümmern müssen. Viel Glück und zögern Sie nicht, mich bei Fragen zu kontaktieren!




All Articles