[PYTHON] Versuchen Sie es mit Selen

Selen erste Erfahrung

Ich musste Websites mit dynamischen Elementen abkratzen, sodass ich keine andere Wahl hatte, als Selen zu lernen.

pip install selenium

Da der Browser Chrome verwenden möchte, laden Sie den Chrome-Treiber herunter und verschieben Sie ihn in die virtuelle Umgebung. Ich bin nach / bin gezogen.

https://sites.google.com/a/chromium.org/chromedriver/downloads

Ich werde versuchen zu sehen, ob es sofort funktioniert. Bei der Überprüfung wird Yahoo! als URL verwendet.

test.py


import os
import time
from selenium import webdriver

DRIVER_PATH = os.path.join(os.path.dirname(__file__), 'chromedriver')
browser = webdriver.Chrome(DRIVER_PATH)
browser.get('https://www.yahoo.co.jp')

try:
    elem_1 = browser.find_element_by_class_name('emphasis')
    print ('<{}>Entdecken!'.format(elem_1.text))
    time.sleep(3)
except:
    print ('Nein')
(flaskworks) $ python test.py
<BIP-Jahr 1.0%Abwärtskorrektur zu erhöhen
Inkonsistentes Foto NEU zur Antwort des Premierministers
Britischer Terrorverdächtiger Onkel verärgert Zeugnis Foto
Mt. Fuji in Gunma?Irreführendes Stationsnamenfoto NEU
Ehemaliger Idol Barkeeper Nr.1 Foto
Tanaka lernen die Sprache Kommentator Entschuldigung Foto NEU
Honda Foto des Passivrauchens unmittelbar nach dem Spiel
Yamazaki Anna Foto, das die Datierung mit Obata NEU zugibt>Entdecken!

Stellen Sie sicher, dass es sicher funktioniert. Ich werde auch versuchen, die Seite umzublättern.

test.py


import os
import time
from selenium import webdriver

DRIVER_PATH = os.path.join(os.path.dirname(__file__), 'chromedriver')
browser = webdriver.Chrome(DRIVER_PATH)
browser.get('https://www.yahoo.co.jp')

try:
    link_elem = browser.find_element_by_link_text('Mehr sehen')
    link_elem.click()
    text_elem = browser.find_element_by_class_name('ttl')
    print (text_elem.text)
    time.sleep(3)
except:
    print ('Nein')
(flaskworks)$ python test.py
Nordkorea startet unbekanntes Projektil

Das? Sie können nur einen Fall bekommen.

link_elem = browser.find_element_by_class_name('list')

Wenn umgeschrieben,

(flaskworks) $ python test.py
Nordkorea startet unbekanntes Projektil
International
6/8(Holz) 7:42
Nishikiori besiegte das Bedauern und ist ein Unentschieden
Sport
6/8(Holz) 5:10
Nishikiori rückwärts Niederlage
Sport
6/8(Holz) 2:12
Startzeichen für nordkoreanische ballistische Raketen
International
....Unten weggelassen

Das war's. Vielleicht ist das einfacher als schöne Suppe.

Benutzerdefiniert, das automatisch mehrere Seiten überwacht

Es ist nur eine grobe Hinzufügung von Seitenparametern. Immerhin habe ich auf Weiter geklickt, also ist es als Prozess nicht schön. Ich denke, es gibt einen besseren Weg, aber dies ist die Grenze, weil es nur der Anfang ist.

test.py


import os
import time
from selenium import webdriver

DRIVER_PATH = os.path.join(os.path.dirname(__file__), 'chromedriver')
browser = webdriver.Chrome(DRIVER_PATH)
url = 'https://news.yahoo.co.jp/list/?c=domestic&p='

a = 0
i = 1
while a < 5:
    a += 1
    try:
        browser.get(url)
        link_elem = browser.find_element_by_link_text('Nächster')
        link_elem.click()
        text_elem = browser.find_element_by_css_selector('.list')
        print (text_elem.text)
        time.sleep(3)
        i += 1
        url = 'https://news.yahoo.co.jp/list/?c=domestic&p=' + str(i)
    except:
        print ('Nein')

Recommended Posts

Versuchen Sie es mit Selen
Versuchen Sie, automatisch mit Selen zu twittern.
Versuchen Sie es mit Tkinter
Versuchen Sie es mit Docker-Py
Versuchen Sie es mit einem Ausstecher
Versuchen Sie es mit PDFMiner
Versuchen Sie es mit Geopandas
Versuchen Sie es mit scipy
Versuchen Sie es mit pandas.DataFrame
Versuchen Sie es mit Django-Swiftbrowser
Versuchen Sie es mit matplotlib
Versuchen Sie es mit tf.metrics
Versuchen Sie es mit PyODE
Versuchen Sie es mit virtualenv (virtualenvwrapper)
[Azure] Versuchen Sie, Azure-Funktionen zu verwenden
Versuchen Sie es jetzt mit virtualenv
Versuchen Sie es mit W & B.
Versuchen Sie es mit Django templates.html
[Kaggle] Versuchen Sie es mit LGBM
Versuchen Sie es mit dem Feed-Parser von Python.
Versuchen Sie es mit Pythons Tkinter
Versuchen Sie es mit Tweepy [Python2.7]
Versuchen Sie es mit Pytorchs collate_fn
Versuchen Sie, PythonTex mit Texpad zu verwenden.
[Python] Versuchen Sie, Tkinters Leinwand zu verwenden
Versuchen Sie es mit Jupyters Docker-Image
Versuchen Sie die Funktionsoptimierung mit Hyperopt
Versuchen Sie es mit matplotlib mit PyCharm
Versuchen Sie es mit Azure Logic Apps
Versuchen Sie es mit Kubernetes Client -Python-
[Kaggle] Versuchen Sie es mit xg boost
Versuchen Sie es mit der Twitter-API
Selen
Starten Sie mit Python zu Selen
Versuchen Sie es mit AWS SageMaker Studio
Versuchen Sie es mit SQLAlchemy + MySQL (Teil 1)
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit SQLAlchemy + MySQL (Teil 2)
Versuchen Sie es mit der Vorlagenfunktion von Django
Web Scraping mit Selenium (Python)
Versuchen Sie es mit der PeeringDB 2.0-API
Versuchen Sie es mit der Entwurfsfunktion von Pelican
Versuchen Sie es mit pytest-Overview und Samples-
Probieren Sie Selenium Grid mit Docker aus
Versuchen Sie es mit Folium mit Anakonda
Versuchen Sie es mit der Admin-API von Janus Gateway
[Statistik] [R] Versuchen Sie, die Teilungspunktregression zu verwenden.
Versuchen Sie es mit Spyder, das in Anaconda enthalten ist
Versuchen Sie es mit Designmustern (Exporter Edition)
Versuchen Sie es mit Pillow auf iPython (Teil 2)
Versuchen Sie es mit der Pleasant-API (Python / FastAPI).
Versuchen Sie es mit LevelDB mit Python (plyvel)
Versuchen Sie, Nagios mit pynag zu konfigurieren
Versuchen Sie, die Remote-Debugging-Funktion von PyCharm zu verwenden
Versuchen Sie es mit ArUco mit Raspberry Pi
Versuchen Sie es mit billigem LiDAR (Camsense X1)
[Sakura-Mietserver] Versuchen Sie es mit einer Flasche.
Versuchen Sie es mit Pillow auf iPython (Teil 3).
Stärkung des Lernens 8 Versuchen Sie, die Chainer-Benutzeroberfläche zu verwenden
Versuchen Sie, Statistiken mit e-Stat abzurufen
Versuchen Sie es mit der Aktions-API von Python argparse