[PYTHON] Vous serez ingénieur dans 100 jours ――Jour 75 ――Programmation ――À propos du scraping 6

Cliquez ici jusqu'à hier

Vous deviendrez ingénieur dans 100 jours-70-Programmation-À propos du scraping

Vous deviendrez ingénieur dans 100 jours - Jour 66 - Programmation - À propos du traitement du langage naturel

Vous deviendrez ingénieur dans 100 jours - Jour 63 - Programmation - À propos de la probabilité 1

Vous deviendrez ingénieur dans 100 jours - Jour 59 - Programmation - À propos des algorithmes

Vous deviendrez ingénieur dans 100 jours --- Jour 53 --Git --À propos de Git

Vous deviendrez ingénieur dans 100 jours - Jour 42 --Cloud --À propos des services cloud

Vous deviendrez ingénieur dans 100 jours - Jour 36 --Base de données --À propos de la base de données

Vous deviendrez ingénieur dans 100 jours-24 jours-Python-Bases du langage Python 1

Vous deviendrez ingénieur dans 100 jours --Jour 18 --Javascript --Les bases de JavaScript 1

Vous deviendrez ingénieur dans 100 jours - Jour 14 --CSS --CSS Basics 1

Vous deviendrez ingénieur dans 100 jours - Jour 6 --HTML - Bases du HTML 1

Cette fois, c'est aussi une continuation du grattage.

Si vous avez terminé d'installer Selenium, vous pouvez continuer.

Comment utiliser Selenium

Charger du sélénium

Chargez la bibliothèque. En supposant que Google Chrome fonctionnera ...

from selenium import webdriver

#Paramètres du pilote
chromedriver = "Pass complet du conducteur"
driver = webdriver.Chrome(executable_path=chromedriver)

Je pense que la destination de sauvegarde du pilote WEB est différente pour chaque personne, veuillez donc la réécrire. C'est la manière de lancer Google Chrome.

スクリーンショット 2020-06-03 18.04.12.png

Si vous recevez un message d'erreur, vous devez faire correspondre le pilote WEB et la version de Chrome. Il peut également être nécessaire de définir des autorisations pour que le pilote WEB puisse être exécuté, vérifiez donc les détails de l'erreur et prenez les mesures appropriées.

À ce stade, vous pouvez utiliser le navigateur, de sorte que vous pouvez effectuer diverses opérations.

Une fois que vous ouvrez le navigateur, il reste ouvert jusqu'à ce que vous le fermiez. N'oubliez pas de le laisser tomber, car l'ouvrir en grand nombre consomme des ressources.

Vous pouvez également l'ouvrir en mode sans en-tête lorsque vous utilisez du sélénium. Le mode sans en-tête est un mécanisme qui déplace le navigateur dans les coulisses sans le lancer visiblement.

C'est un mode très pratique car il économise des ressources et vous permet d'utiliser Selenium sur des serveurs Linux.

Pour écrire, créez une variable pour ajouter le paramètre ʻoptiondu navigateur Ajoutez le paramètreheaderless` et ajoutez-le à l'argument de la méthode d'appel du pilote WEB.

ʻOption variable = webdriver.ChromeOptions () ʻOptional variable .add_argument ('--headless') Variable de pilote = webdriver.Chrome (options = variable d'option)

from selenium import webdriver

#Paramètres du pilote
chromedriver = "Pass complet du conducteur"

#Réglage des options
options = webdriver.ChromeOptions()
options.add_argument('--headless')
#Appel du chauffeur
driver = webdriver.Chrome(executable_path=chromedriver,
options=options)

Accédez au site Web avec Selenium

Nous allons opérer en utilisant les variables lorsque le sélénium est appelé. Puisque nous l'avons appelé avec le nom de variable «driver» plus tôt, nous l'appellerons désormais «variable de pilote».

Pour accéder au site Web

Variable de pilote .get (URL)

Tapez pour exécuter.

driver.get(URL)

Passons à mon HP à titre d'essai.

driver.get('http://www.otupy.net')
スクリーンショット 2020-06-03 18.20.24.png

Vous pouvez saisir l'URL pour accéder au site chaque fois que vous l'exécutez. L'affichage de tous les sites Web prendra un certain temps, il est donc préférable d'attendre un certain temps avant d'effectuer toute opération ultérieure.

Faites défiler le site

Vous pouvez faire défiler le site en exécutant Javascript. Vous pouvez taper le script avec ʻexecute_script`.

Variable de pilote .execute_script (Javascript)

Pour la partie Javascript, saisissez le script sous forme de caractère window.scrollBy (0, Y) et window.scrollTo (0, Y) Utilisez pour déterminer la position de défilement.

window.scrollBy (0, window.innerHeight); pour une page

Spécifiez window.scrollTo (0, document.body.scrollHeight); pour faire défiler vers le bas.

Faisons défiler.

#Faites défiler un peu
driver.execute_script("window.scrollBy(0, window.innerHeight);")

#Faites défiler vers le bas
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

Vous pouvez maintenant faire défiler le navigateur.

Trouvez l'élément

Pour travailler avec votre site, vous devez trouver l'élément où vous souhaitez travailler. Vous pouvez rechercher des éléments sur le site tels que des orchidées d'entrée.

Il existe de nombreuses façons de trouver un élément Variable de pilote .find_element_by_XXXX Vous pouvez rechercher par la valeur de chaque attribut avec la méthode.

Si un élément est trouvé, il sera extrait comme un type de données appelé «WebElement».

** Recherche par attribut d'identifiant **

Variable de pilote .find_element_by_id (valeur de l'attribut id)

** Recherche par attribut de nom **

Variable de pilote .find_element_by_name (valeur de l'attribut name)

** Recherche par nom de classe **

Variable de pilote .find_element_by_class_name (nom de la classe)

** nom du tag **

Variable de pilote .find_element_by_tag_name (nom de la balise)

** Recherche par link_text **

Variable de pilote .find_element_by_link_text (valeur de link_text)

CSS_Selector

Variable de pilote .find_element_by_css_selector (valeur de css_selector)

xpath

Variable de pilote .find_element_by_xpath (valeur de xpath)

Manipuler des éléments

Vous devez d'abord trouver l'élément pour travailler avec lui. Si vous trouvez un élément par la méthode ci-dessus, affectez-le à la ʻelement variable` et vous pouvez effectuer les opérations suivantes.

ʻElement variable .find_element_by_XXXX () ʻElement variable. Méthode d'opération

** Cliquez sur un élément **

ʻElement variable .click () `

** Entrez des caractères dans l'élément **

ʻElement variable .send_keys (caractère) `

** Entrée clé avec élément **

Chargez d'abord la bibliothèque Keys.


from selenium.webdriver.common.keys import Keys

Trouvez ensuite l'élément et utilisez send_keys pour saisir la clé.

ʻElement variable .send_keys (Keys. Clés spéciales) `

Les clés qui peuvent être manipulées sont les suivantes.

Clé Keys
La touche Entrée Keys.ENTER
Touche Alt(Combiné avec une clé normale) Keys.ALT,"Clé"
← touche Keys.LEFT
→ clé Keys.RIGHT
Touche ↑ Keys.UP
Touche ↓ Keys.DOWN
Touche Ctrl(Combiné avec une clé normale) Keys.CONTROL,"Clé"
Supprimer la clé Keys.DELETE
Clé de la maison Keys.HOME
Touche FIN Keys.END
Touche ESCAPE Keys.ESCAPE
égal Keys.EQUALS
Touche COMMAND Keys.COMMAND
Touche F1 Keys.F1
touche Majuscule(Combiné avec une clé normale) Keys.SHIFT,"Clé"
Touche de bas de page Keys.PAGE_DOWN
Touche Page précédente Keys.PAGE_UP
Touche espace Keys.SPACE
Touche retour Keys.RETURN
La touche TAB Keys.TAB

Extraire le code source de la page

Vous pouvez obtenir le code source de la page sous forme de chaîne.

Variable de pilote .page_source

driver.page_source

Après l'acquisition, l'analyse peut être effectuée à l'aide d'une bibliothèque telle que «BeautifulSoup».

Résumé

Avec du sélénium, avec des techniques de grattage normales C'est pratique car vous pouvez facilement obtenir des informations qui ne peuvent pas être obtenues.

Si vous rencontrez des difficultés pour obtenir des données, essayez le sélénium. Si vous pouvez faire cela, vous pourrez obtenir des données écrasantes.

25 jours jusqu'à ce que vous deveniez ingénieur

Informations sur l'auteur

HP d'Otsu py: http://www.otupy.net/

Youtube: https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter: https://twitter.com/otupython

Recommended Posts

Vous serez ingénieur dans 100 jours ――Jour 71 ――Programmation ――À propos du scraping 2
Vous serez ingénieur dans 100 jours ――Jour 74 ――Programmation ――À propos du scraping 5
Vous serez ingénieur dans 100 jours ――Jour 73 ――Programmation ――À propos du scraping 4
Vous serez ingénieur dans 100 jours ――Jour 75 ――Programmation ――À propos du scraping 6
Vous serez ingénieur dans 100 jours ――Jour 70 ――Programmation ――À propos du grattage
Vous deviendrez ingénieur dans 100 jours --Jour 68 --Programmation --A propos de TF-IDF
Vous serez ingénieur dans 100 jours ――Jour 81 ――Programmation ――À propos de l'apprentissage automatique 6
Vous serez ingénieur dans 100 jours ――Jour 82 ――Programmation ――À propos de l'apprentissage automatique 7
Vous serez ingénieur dans 100 jours ――Jour 79 ――Programmation ――À propos de l'apprentissage automatique 4
Vous serez ingénieur dans 100 jours ――Jour 76 ――Programmation ――À propos de l'apprentissage automatique
Vous serez ingénieur dans 100 jours ―― Jour 80 ―― Programmation ―― À propos de l'apprentissage automatique 5
Vous serez ingénieur dans 100 jours ――Jour 84 ――Programmation ――À propos de l'apprentissage automatique 9
Vous serez ingénieur dans 100 jours ――Jour 83 ――Programmation ――À propos de l'apprentissage automatique 8
Vous serez ingénieur dans 100 jours ――Jour 77 ――Programmation ――À propos de l'apprentissage automatique 2
Vous serez ingénieur dans 100 jours ――Jour 85 ――Programmation ――À propos de l'apprentissage automatique 10
Vous serez ingénieur dans 100 jours ――Jour 63 ――Programmation ――À propos de la probabilité 1
Vous serez ingénieur dans 100 jours ――Jour 65 ――Programmation ――A propos de la probabilité 3
Vous serez ingénieur dans 100 jours ――Jour 64 ――Programmation ――À propos de la probabilité 2
Vous serez ingénieur dans 100 jours --Jour 86 --Base de données -
Vous serez ingénieur dans 100 jours ―― Jour 60 ―― Programmation ―― À propos de la structure des données et de l'algorithme de tri
Vous serez ingénieur dans 100 jours - Jour 27 - Python - Exercice Python 1
Vous serez ingénieur dans 100 jours - Jour 34 - Python - Exercice Python 3
Vous devenez ingénieur en 100 jours ――Jour 67 ――Programmation ――A propos de l'analyse morphologique
Vous serez ingénieur dans 100 jours ――Jour 24 ―― Python ―― Bases du langage Python 1
Vous serez ingénieur dans 100 jours ――Jour 30 ―― Python ―― Bases du langage Python 6
Vous serez ingénieur dans 100 jours ――Jour 25 ―― Python ―― Bases du langage Python 2
Vous serez ingénieur dans 100 jours - Jour 29 - Python - Bases du langage Python 5
Vous serez ingénieur dans 100 jours - Jour 33 - Python - Bases du langage Python 8
Vous serez ingénieur dans 100 jours --Jour 26 --Python --Basiques du langage Python 3
Vous devenez ingénieur en 100 jours - Jour 35 - Python - Ce que vous pouvez faire avec Python
Vous serez ingénieur dans 100 jours --Jour 32 --Python --Basiques du langage Python 7
Vous serez ingénieur dans 100 jours --Jour 28 --Python --Les bases du langage Python 4
Lorsqu'une erreur se produit dans le scraping python (requêtes)
Vous devez faire attention aux commandes que vous utilisez quotidiennement dans l'environnement de production.
Ce que les débutants pensent de la programmation en 2016