[python, ruby] sélénium-Obtenez le contenu d'une page Web avec le pilote Web

Au début

Je l'ai écrit en Ruby et Python, mais depuis que j'ai décidé de l'écrire en Python dans la seconde moitié, Ruby n'est devenu qu'une simple partie ... Veuillez noter que la partie Ruby est une note supplémentaire.

python

Installation

selenium

pip install selenium

chromewebdriver Parce que c'était un mac

brew install chromedriver

Linux est en dessous? (Je ne sais pas parce que je ne l'ai pas essayé ...)

sudo apt-get install chromium-browser

Page référencée http://stackoverflow.com/questions/8255929/running-webdriver-chrome-with-selenium

Code simple

Un exemple simple d'accès à la page d'accueil de Google, d'attente de 10 secondes et de fermeture

sample.py


from selenium import webdriver
from time import sleep
browser = webdriver.Chrome()
browser.get('http://google.com')
sleep(10)
browser.close()

Relation de connexion

login.py


#Trouvez la partie où l'identifiant est le courrier électronique
mail = browser.find_element_by_id('email')
#Trouvez la partie où l'ID est passé
pass_wd = browser.find_element_by_id('pass')
#Entrez l'email
mail.send_keys('[email protected]')
#Entrez le pass
pass_wd.send_keys('password')
#Envoyer
pass_wd.submit()

Définir Autoriser / Bloquer la notification de chrome

Dans le cas de Ruby, il est possible de le laisser tel quel, mais dans le cas de Python, ce PopUp rend impossible l'exécution du programme, alors définissez chrome_options à l'avance.

Changer avant


browser = webdriver.Chrome()

Après le changement


chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chrome_options.add_experimental_option("prefs",prefs)
browser = webdriver.Chrome(chrome_options=chrome_options)

faire défiler

Faites défiler vers le haut de la page

browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")

Obtenez le lien

Tous les liens de l'élément que vous venez de spécifier

links = myelement.find_elements_by_xpath(".//a")

Tous les liens de la page maintenant

links = myelement.find_elements_by_xpath("//a")

Si vous obtenez un lien avec l'une des informations ci-dessus, utilisez get_attribute ('href') pour obtenir l'URL

urls = [ link.get_attribute('href') for link in links]

Page référencée

http://www.takunoko.com/blog/pythonselenium%E3%81%A7twitter%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/ Connexion facile

http://selenium-python.readthedocs.io/faq.html --Faire défiler --prendre un lien

ruby

Installation

selenium-webdriver gem

gem install selenium-webdriver

chrome driver

Après avoir téléchargé et décompressé le chromedriver Vérifiez l'emplacement du rubis avec quel rubis et déplacez-vous dessus

Si vous utilisez rbenv, vous pouvez utiliser la commande suivante mv chromedriver ~/.rbenv/shims

Code simple

require "selenium-webdriver"

driver = Selenium::WebDriver.for :chrome
driver.navigate.to "http://google.com"

driver.quit

Relation de connexion

## type email
element = driver.find_element(:id, 'email')
element.send_keys '[email protected]'
# type password
element = driver.find_element(:id, 'pass')
element.send_keys 'password'
# submit the form
element.submit

Vous pouvez maintenant afficher l'écran après vous être connecté.

Page référencée

http://shoprev.hatenablog.com/entry/2014/04/14/210529 Voir la section Paramètres de ChromeDriver et code simple

https://gist.github.com/huangzhichong/3284966 Voir ici pour plus de détails hier

Recommended Posts

[python, ruby] sélénium-Obtenez le contenu d'une page Web avec le pilote Web
[python] Récupérez rapidement les métadonnées de la page Web avec lassie
Extraire des données d'une page Web avec Python
Python VBA pour obtenir une capture de la page WEB entière avec Selenium
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Hit une méthode d'une instance de classe avec l'API Web Python Bottle
Création de "Web Tools" BINGO avec Python (Table of Contents)
[Python3] Prenez une capture d'écran d'une page Web sur le serveur et recadrez-la davantage
[Pour les débutants] Web scraping avec Python "Accédez à l'URL de la page pour obtenir le contenu"
[Part.2] Exploration avec Python! Cliquez sur la page Web pour vous déplacer!
Script Python qui compare le contenu de deux répertoires
Récupérez la source de la page à charger indéfiniment avec python.
J'ai comparé la vitesse de Hash avec Topaz, Ruby et Python
Traitez le contenu du fichier dans l'ordre avec un script shell
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
L'histoire de la création d'un pilote standard pour db avec python.
L'idée d'alimenter le fichier de configuration avec un fichier python au lieu de yaml
L'histoire de la création d'un module qui ignore le courrier avec python
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
Créez un programme de jugement de compatibilité avec le module aléatoire de python.
Vérifier l'existence du fichier avec python
Rechercher le labyrinthe avec l'algorithme python A *
Démonisez une application Web Python avec Supervisor
[Note personnelle] Scraping de pages Web en python3
Télécharger des fichiers sur le Web avec Python
[Python] Une application web rapide avec Bottle!
[python] [meta] Le type de python est-il un type?
Exécutez une application Web Python avec Docker
Créez un framework Web avec Python! (1)
L'histoire du traitement A du blackjack (python)
Scraping Web facile avec Python et Ruby
Créez un framework Web avec Python! (2)
L'histoire de la création d'un robot LINE pour le petit-déjeuner d'une université de 100 yens avec Python
[Explication AtCoder] Contrôlez les problèmes A, B, C d'ABC182 avec Python!
Calculer l'itinéraire le plus court d'un graphe avec la méthode Dyxtra et Python
Calculez la probabilité d'être une pièce de calmar avec le théorème de Bayes [python]
Recevez une liste des résultats du traitement parallèle en Python avec starmap
[Explication AtCoder] Contrôle ABC184 Problèmes A, B, C avec Python!
[AtCoder] Résoudre un problème de ABC101 ~ 169 avec Python
Récupérer le contenu de git diff depuis python
[Python] Récupérez les fichiers dans le dossier avec Python
Préparer l'environnement d'exécution de Python3 avec Docker
Mathématiques Todai 2016 résolues avec Python
Le contenu du didacticiel Python (chapitre 5) est résumé dans une puce.
Le contenu du didacticiel Python (chapitre 4) est résumé dans une puce.
Le contenu du didacticiel Python (chapitre 2) est résumé dans une puce.
[Note] Exportez le html du site avec python.
Récupérer l'appelant d'une fonction en Python
Le contenu du didacticiel Python (chapitre 8) est résumé dans une puce.
Calculez le nombre total de combinaisons avec python
Le contenu du didacticiel Python (chapitre 1) est résumé dans une puce.
Spécification de la plage des tableaux ruby et python
Créer une page qui se charge indéfiniment avec python
Démarrez un serveur Web Python simple avec Docker
Copiez la liste en Python