Le grattage avec Python-Selenium est vieux! ?? ・ ・ ・ Comment utiliser Pyppeteer

Comment utiliser Pyppeteer

table des matières

Qu'est-ce que Pyppeteer

Pyppeteer est un package Python permettant de faire fonctionner le navigateur Chrome, qui est un portage de la bibliothèque Puppeteer pour node.js vers Python. Comme il y a peu d'informations sur Pyppereer, il peut être préférable de rechercher avec Puppeteer lors de la recherche.

Blog de l'auteur de Pyppeteer Site des marionnettistes

Installation

pip install pyppeteer

Comment utiliser

Lancez le navigateur et ouvrez le site

import asyncio

from pyppeteer import launch

async def main():
    browser = await launch()
    page = await browser.newPage()
    await page.goto('https://google.com')
    

if __name__ == "__main__":
    asyncio.get_event_loop().run_until_complete(main()) 

L'exécution de la commande ci-dessus lancera Chronium en mode sans tête, ouvrira le site Google et fermera le navigateur. Chromium n'est installé qu'une seule fois lors de la première importation. Par défaut, Pyppeteer lance le navigateur en mode sans tête.

browser = await launch(headless=False)

Vous pouvez afficher le navigateur en faisant.

Obtenir l'élément

#Obtenez le premier élément qui répond aux critères
# page.Également possible avec J
textbox = await page.querySelector('input[aria-label="Chercher"]')
textbox = await page.J('input[aria-label="Chercher"]')

#Obtenez tous les éléments qui remplissent les conditions
# page.Également possible avec JJ
buttons = await page.querySelectorAll('input[aria-label="recherche Google"]')
buttons = await page.JJ('input[aria-label="recherche Google"]')

Tapez dans la zone de texte

# page.type(sélecteur,Valeur d'entrée)
#Possible même à partir de l'élément acquis
await page.type('input[aria-label="Chercher"]', 'pyppeteer')
await textbox.type('pyppeteer')

Cliquez sur

# page.click(sélecteur)
#C'est possible même à partir de l'élément acquis

#Parce que le bouton de recherche de Google doit sélectionner le deuxième élément
#Dois-je l'obtenir avec querySelectorAll?
await page.click('last-child:input[aria-label="recherche Google"]')
await buttons[1].click()

Obtenir la valeur d'un attribut

Obtenez-le en exécutant javascript avec page.evaluate.

text = await page.evaluate('elm => elm.getAttribute("name")',textbox)

Obtenez innerHTML

Comme ci-dessus

elm = await page.J('#hptl')
text = await page.evaluate('elm => elm.innerHTML', elm)

Recommended Posts

Le grattage avec Python-Selenium est vieux! ?? ・ ・ ・ Comment utiliser Pyppeteer
Python: comment utiliser async avec
Pour utiliser virtualenv avec PowerShell
[Pandas] Qu'est-ce que set_option [Comment utiliser]
Comment utiliser OpenVPN avec Ubuntu 18.04.3 LTS
Comment utiliser Cmder avec PyCharm (Windows)
Comment utiliser Ass / Alembic avec HtoA
Comment utiliser le japonais avec le tracé NLTK
Comment utiliser le notebook Jupyter avec ABCI
Comment utiliser la commande CUT (avec exemple)
Comment utiliser is et == en Python
Comment utiliser SQLAlchemy / Connect avec aiomysql
Comment utiliser le pilote JDBC avec Redash
Comment utiliser la trace GCP avec la télémétrie ouverte
Comment utiliser tkinter avec python dans pyenv
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Comment utiliser virtualenv
Grattage 2 Comment gratter
Comment utiliser Seaboan
Comment utiliser la correspondance d'image
Comment utiliser le shogun
Comment utiliser Pandas 2
Comment utiliser Virtualenv
Comment utiliser numpy.vectorize
Comment utiliser partiel
Comment utiliser Bio.Phylo
Comment utiliser SymPy
Comment utiliser WikiExtractor.py
Comment utiliser IPython
Comment utiliser virtualenv
Comment utiliser Matplotlib
Comment utiliser iptables
Comment utiliser numpy
Comment utiliser TokyoTechFes2015
Comment utiliser venv
Comment utiliser le dictionnaire {}
Comment utiliser la liste []
Comment utiliser OptParse
Comment utiliser le retour
Comment utiliser pyenv-virtualenv
Comment utiliser imutils
Comment utiliser xgboost: classification multi-classes avec des données d'iris
Comment utiliser le mode interactif python avec git bash
Comment utiliser Qt Designer
[gensim] Comment utiliser Doc2Vec
python3: Comment utiliser la bouteille (2)
Comprendre comment utiliser django-filter
Comment utiliser le générateur
[Python] Comment utiliser la liste 1
Comment utiliser FastAPI ③ OpenAPI
Comment utiliser Python Argparse
Comment utiliser IPython Notebook
Comment mettre à jour avec SQLAlchemy?
[Note] Comment utiliser virtualenv
Comment utiliser les dictionnaires redis-py