0
아래 코드는 정상적으로 작동하지만 다중 루프를 사용하고 있습니다. 모든 루프를 하나의 루프로 만들 수 있습니다.파이썬 셀렌을 사용하여 단일 루프에서 여러 요소를 반복하는 방법
여러 루프 코드 :
for post in driver.find_elements_by_class_name("_1UoZlX"):
mobile_link += [ post.get_attribute("href") ]
for post1 in driver.find_elements_by_class_name("_3wU53n"):
mobile_name += [ post1.text ]
for post2 in driver.find_elements_by_css_selector("._1vC4OE._2rQ-NK"):
offer_price += [ post2.text ]
전체 코드 :
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
import time
import csv
chrome_path = r"C:\Users\Venkatesh\AppData\Local\Programs\Python\Python35\chromedriver.exe"
driver = webdriver.Chrome(chrome_path)
RegionIDArray = ["https://www.flipkart.com/mobiles/pr?otracker=categorytree&page=1&sid=tyy%2C4io", "https://www.flipkart.com/mobiles/pr?otracker=categorytree&page=2&sid=tyy%2C4io"]
mobile_link = []
mobile_name = []
offer_price = []
actual_price = []
data_list=[]
delay = 10 # seconds
for reg in RegionIDArray:
try:
driver.get(reg)
WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.XPATH, "//*[@id='container']/div/div[2]/div[2]/div/div[2]/div/div[3]/div[1]/div/div[1]")))
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
print("Page is ready")
for post in driver.find_elements_by_class_name("_1UoZlX"):
mobile_link += [ post.get_attribute("href") ]
for post1 in driver.find_elements_by_class_name("_3wU53n"):
mobile_name += [ post1.text ]
for post2 in driver.find_elements_by_css_selector("._1vC4OE._2rQ-NK"):
offer_price += [ post2.text ]
time.sleep(10)
except TimeoutException:
print("Loading took too much time")
driver.quit()
이 웹 사이트 (https://www.flipkart.com/mobiles/pr?otracker=categorytree&page=1&sid=tyy%2C4io&affid=businessp2)를 볼 수 있다면 가격 가격 (텍스트 장식 : 줄을 긋기)을 원합니다. 약간의 시간 가치가있을 것입니다 거기에 시간 가치가있을 것입니다. 나는 모든 정보를 mobile_link, mobile_name 등과 같은 배열에 넣고있다. 스트라이크 값을 얻으려고하면 범위 문제를 벗어난 인덱스를 얻는다. 질문은 http://stackoverflow.com/questions/43253910/list-index-out-of-range-using-python-selenium?noredirect=1#comment73582762_43253910입니다. –