[PYTHON] So kratzen Sie Seiten, denen in Selenium + Headless Chrome "Zugriff verweigert" wurde

Einführung

Als ich mit Selenium + Headless Chrome geschabt habe, bin ich auf eine Website gestoßen, auf der ich Informationen im Kopfmodus abrufen konnte. Sobald ich sie jedoch kopflos gemacht habe, wurde ein NoSuchElementException-Fehler angezeigt. Es gab nicht viele japanische Artikel über Problemumgehungen, daher werde ich sie veröffentlichen.

Status

-Schaben ist im Kopfmodus möglich. -Eine NoSuchElementException trat auf, sobald die Option ohne Kopf hinzugefügt wurde.

debuggen

Ursache Untersuchung

Es scheint, dass das Element nicht erhalten wurde, daher habe ich die Quelle der Site mit driver.page_source überprüft.

scraping.py


driver.page_source

Der zurückgegebene HTML-Code enthält die Wörter "Zugriff verweigert", und es scheint, dass der Zugriff von Headless verweigert wird.

<html><head>
webapp_1        | <title>Access Denied</title>
webapp_1        | </head><body>
webapp_1        | <h1>Access Denied</h1>
webapp_1        |  
webapp_1        | You don't have permission to access "http://www.xxxxxxx/" on this server.<p>

Gegenmaßnahmen

Bei der Prüfung verfügte der Chrome-Treiber über eine user_agent-Option, auf die über einen Browser zugegriffen werden konnte. Wenn Sie dies zur Option chromedrivere hinzufügen, können Sie das Element sicher erhalten.

scraping.py


options = webdriver.ChromeOptions()
            options.binary_location = '/usr/bin/google-chrome'
            options.add_argument('--no-sandbox')
            options.add_argument('--headless')
            options.add_argument('--disable-gpu')
            options.add_argument('--lang=ja-JP')
            options.add_argument(f'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36') #hinzufügen

           

das ist alles

Recommended Posts

So kratzen Sie Seiten, denen in Selenium + Headless Chrome "Zugriff verweigert" wurde
So legen Sie den Browserstandort in Headless Chrome fest
So laden Sie Dateien von Selenium of Python in Chrome herunter
So crawlen Sie Seiten, die unendlich scrollen
Zugriff mit dem Cache beim Lesen von_json mit Pandas
So wechseln Sie mit Python + Selenium + Chrome in den Smartphone-Modus
Schaben 2 Wie man kratzt
Wie man Selen debuggt
So schreiben Sie Typhinweise für Variablen, die mehrfach in einer Zeile zugewiesen werden
So testen Sie, ob die Ausnahme in Python unittest ausgelöst wird
So manipulieren Sie das DOM im Iframe mit Selen
Versuchen Sie, die in COTOHA beliebten Schlüsselwörter zu extrahieren
Wie man mit Pythons Selen in Sekundenschnelle kratzt
Wie man in Python entwickelt
So erstellen Sie AWS Lambda-Schichten, wenn Selen × Chrom auf AWS Lambda ausgeführt wird
Reguläre Ausdrücke, die in Python leicht und solide zu erlernen sind
So stellen Sie fest, dass in Python3 ein Kreuzschlüssel eingegeben wurde
Laden Sie Pakete, die sich nicht in Conda befinden, auf anaconda.org hoch und verwalten Sie sie
So installieren Sie Chrome Driver für Chrome automatisch mit Python + Selenium + Chrome
Tipps zur Verwendung von Selen und Headless Chrome in einer CUI-Umgebung