Je l'ai écrit afin de répondre à l'exigence que les 55 pages et 24 images de produits par page doivent être acquises. Le sélénium est vraiment pratique. Si vous connaissez le nom du produit, l'URL du produit et le code SRC de l'image du produit sous forme de texte, c'est OK pour le moment, donc c'est très concis.
seleniumer.py
import os, re
import time
from selenium import webdriver
DRIVER_PATH = os.path.join(os.path.dirname(__file__), 'chromedriver')
browser = webdriver.Chrome(DRIVER_PATH)
url = 'https://www.XXXXXXXX'
browser.get(url)
for i in range(56):
try:
img_list = []
urls_list = []
name_list = []
for i in browser.find_elements_by_xpath('//*[@id="find-results"]/div/div/div/a[1]/img[1]'):
imgs = i.get_attribute('src')
img_list.append(imgs)
for a in browser.find_elements_by_xpath('//*[@id="find-results"]/div/div/div/a[1]'):
urls = a.get_attribute('href')
urls_list.append(urls)
for t in browser.find_elements_by_xpath('//*[@id="find-results"]/div/div/div/a/div/span[1]/span'):
name = t.text
name_list.append(name)
for img_src, urls_href, name_title in zip(img_list, urls_list, name_list):
print (name_title, urls_href, img_src, "\n+++++++++++++++++++++++++++++++++++++++++++++++++++")
link_elem = browser.find_element_by_class_name('control-page-next-button')
link_elem.click()
time.sleep(3)
except:
print ('not found!')
browser.close()
Si vous souhaitez connaître le xpath utilisé dans browser.find_elements_by_xpath, vous pouvez le coller à partir de COPY dans Chrome. J'ai été impressionné par le fait qu'il a une fonction extrêmement utile.
Il semble que la méthode find_elements () doive être inversée pour.
Recommended Posts