Pour racler des articles Web anti-grattage Je veux gratter en utilisant le pilote chrome sans tête avec python
À propos du pilote de navigateur En bref, il semble que ce soit un outil nécessaire pour gérer le navigateur avec CUI au lieu de GUI.
Relation entre le serveur DNS et les hôtes locaux Lorsque nous accédons à partir du nom de domaine avec un navigateur, il demande au serveur DNS ces informations, retourne sous forme d'adresse IP et le PC l'utilise pour accéder au site Web et le site s'affiche avec le navigateur. Cependant, si vous mettez le domaine et l'adresse IP dans le fichier hosts du Mac, vous pouvez obtenir l'adresse IP sans vous connecter au serveur DNS.
Article de référence [Selenium et Google Spreadsheets (4) "Jusqu'à ce que vous commenciez à utiliser le pilote Chrome" (https://bitwave.showcase-tv.com/selenium%E3%81%A8google-spreadsheets4-%E3%80%8Cchrome-driver%E3 % 82% 92% E4% BD% BF% E3% 81% 84% E3% 81% AF% E3% 81% 98% E3% 82% 81% E3% 82% 8B% E3% 81% BE% E3% 81 % A7% E7% B7% A8% E3% 80% 8D /) Cet article sur le serveur DNS, [Illustration] Qu'est-ce qu'un serveur DNS? Comment définir / modifier et vérifier Cet article est recommandé pour les fichiers hôtes. Comment réécrire / éditer les fichiers hôtes sur Mac! Que dois-je faire si cela n'est pas reflété?
Ouvrez le fichier.
$sudo vi /etc/hosts
Ensuite, vérifiez que le contenu du fichier hosts ressemble à ceci.
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
Installez également la même version du pilote que la version chrome incluse dans l'application depuis le site sélénium. (Dans mon cas, c'était 78.0.3904.97.) ChromeDriver - WebDriver for Chrome
# -*- coding:utf-8 -*-
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
if __name__ == '__main__':
base = "URL du site grattée"
options = Options()
#désignation sans tête
options.add_argument('--headless')
driver = webdriver.Chrome(executable_path='Chemin absolu vers le répertoire où se trouve le pilote Chrome', chrome_options=options)
driver.get(url)
#Encoder
html = driver.page_source.encode('utf-8')
#Instanciation
soup = BeautifulSoup(html, 'html.parser')
J'utilise habituellement urllib.request Il peut être possible de le résoudre en utilisant ce sélénium pour les sites anti-grattage !
Recommended Posts