ПИТОН: Как повторить задание? - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь почистить страницу с ленивой загрузкой, поэтому я использую приведенные ниже коды, одни и те же строки кодов необходимо повторить от 4 до 5 раз для всех перечисленных / загруженных продуктов.

Как вы упрощаете эти коды, чтобы мне не приходилось повторять мои коды?

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

driver.get("https://www.tropicanawholesale.com/shop-by-category/diet-and-weight-management/")
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(15)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(15)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(15)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

elem = driver.find_elements_by_class_name("product-listing-row")
raw_data = []
for ii in elem:
    pname = ii.find_element_by_class_name('product-name').text
    print('pname: ' + pname)
    psku = ii.find_element_by_class_name('product-code').text
    print('psku: ' + psku)
    thumb = ii.find_element_by_class_name('scaleAll').get_attribute('src')
    print('thumb: ' + thumb)
    link = ii.find_element_by_css_selector('a').get_attribute('href')
    print('address: ' + link)
    raw_data_elem = {'Product_Name': pname,
        'Product_SKU': psku,
        'Product_ImageURL': thumb,
        'Product _URL': link}
    #add row to list
    raw_data.append(raw_data_elem)
    df = pd.DataFrame(raw_data, columns = ['Product_Name', 'Product_SKU',
        'Product_ImageURL', 'Product _URL'])
    df.to_csv (r'/Users/reezalaq/PycharmProjects/wholesale/data.csv')

1 Ответ

0 голосов
/ 07 октября 2019

попробуйте это:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

def run_script():
    driver.get("https://www.tropicanawholesale.com/shop-by-category/diet-and-weight- 
    management/")
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

count = 0
while count < 5:
     run_script()
     count+=1
     time.sleep(15)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...