Scraping mit Python-Selen ist alt! ?? ・ ・ ・ Verwendung von Pyppeteer

Wie benutzt man Pyppeteer?

Inhaltsverzeichnis

Was ist Pyppeteer?

Pyppeteer ist ein Python-Paket zum Bedienen des Chrome-Browsers, der ein Port der Bibliothek Puppeteer für node.js nach Python ist. Da es nur wenige Informationen zu Pyppereer gibt, ist es möglicherweise besser, bei der Suche mit Puppenspieler zu suchen.

Blog des Pyppeteer-Autors Puppenspieler-Website

Installation

pip install pyppeteer

Wie benutzt man

Starten Sie den Browser und öffnen Sie die 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()) 

Durch Ausführen des obigen Befehls wird Chronium im Headless-Modus gestartet, die Google-Site geöffnet und der Browser geschlossen. Chromium wird beim ersten Import nur einmal installiert. Standardmäßig startet Pyppeteer den Browser im Headless-Modus.

browser = await launch(headless=False)

Sie können den Browser anzeigen, indem Sie dies tun.

Element abrufen

#Holen Sie sich das erste Element, das die Kriterien erfüllt
# page.Auch mit J möglich
textbox = await page.querySelector('input[aria-label="Suche"]')
textbox = await page.J('input[aria-label="Suche"]')

#Holen Sie sich alle Elemente, die die Bedingungen erfüllen
# page.Auch mit JJ möglich
buttons = await page.querySelectorAll('input[aria-label="Google-Suche"]')
buttons = await page.JJ('input[aria-label="Google-Suche"]')

Geben Sie das Textfeld ein

# page.type(Wähler,Eingegebener Wert)
#Möglich sogar aus dem erworbenen Element
await page.type('input[aria-label="Suche"]', 'pyppeteer')
await textbox.type('pyppeteer')

klicken

# page.click(Wähler)
#Es ist sogar aus dem erworbenen Element möglich

#Weil die Google-Suchschaltfläche das zweite Element auswählen muss
#Soll ich es mit querySelectorAll bekommen?
await page.click('last-child:input[aria-label="Google-Suche"]')
await buttons[1].click()

Ruft den Wert eines Attributs ab

Holen Sie es sich, indem Sie Javascript mit page.evaluate ausführen.

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

Holen Sie sich innerHTML

Das gleiche wie oben

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

Recommended Posts

Scraping mit Python-Selen ist alt! ?? ・ ・ ・ Verwendung von Pyppeteer
Python: So verwenden Sie Async mit
So verwenden Sie virtualenv mit PowerShell
[Pandas] Was ist set_option?
Verwendung von OpenVPN mit Ubuntu 18.04.3 LTS
Verwendung von Cmder mit PyCharm (Windows)
Wie man Ass / Alembic mit HtoA benutzt
Verwendung von Japanisch mit NLTK-Plot
Verwendung des Jupyter-Notebooks mit ABCI
Verwendung des CUT-Befehls (mit Beispiel)
Verwendung ist und == in Python
Verwendung von SQLAlchemy / Connect mit aiomysql
Verwendung des JDBC-Treibers mit Redash
Verwendung der GCP-Ablaufverfolgung mit offener Telemetrie
Wie man tkinter mit Python in Pyenv benutzt
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Verwendung von virtualenv
Schaben 2 Wie man kratzt
Wie benutzt man Seaboan?
Verwendung von Image-Match
Wie man Shogun benutzt
Verwendung von Pandas 2
Verwendung von Virtualenv
Verwendung von numpy.vectorize
Wie man teilweise verwendet
Wie man Bio.Phylo benutzt
Verwendung von SymPy
Verwendung von WikiExtractor.py
Verwendung von IPython
Verwendung von virtualenv
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Verwendung der Liste []
Verwendung von OptParse
Verwendung von return
Wie man Imutils benutzt
Verwendung von xgboost: Mehrklassenklassifizierung mit Irisdaten
Verwendung des interaktiven Python-Modus mit Git Bash
Verwendung von Qt Designer
[gensim] Verwendung von Doc2Vec
python3: Verwendung der Flasche (2)
Verstehen Sie, wie man Django-Filter verwendet
Verwendung des Generators
[Python] Verwendung von Liste 1
Verwendung von FastAPI ③ OpenAPI
Wie benutzt man Python Argparse?
Verwendung von IPython Notebook
Wie aktualisiere ich mit SQLAlchemy?
[Hinweis] Verwendung von virtualenv
Verwendung von Redispy-Wörterbüchern