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.
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