如何使用python selenium在单个循环中迭代多个元素
下面的代码运行良好,但我使用了多个循环。是否可以使其成为一个循环来获取所有数据 多循环代码: 完整代码:如何使用python selenium在单个循环中迭代多个元素,python,python-3.x,selenium,for-loop,webdriver,Python,Python 3.x,Selenium,For Loop,Webdriver,下面的代码运行良好,但我使用了多个循环。是否可以使其成为一个循环来获取所有数据 多循环代码: 完整代码: 它仍然是多个循环,但列表理解更为简洁: mobile_link += [ post.get_attribute("href") for post in driver.find_elements_by_class_name("_1UoZlX") ] mobile_name += [ post1.text for post1 in driver.find_elements_by_class_na
它仍然是多个循环,但列表理解更为简洁:
mobile_link += [ post.get_attribute("href") for post in driver.find_elements_by_class_name("_1UoZlX") ]
mobile_name += [ post1.text for post1 in driver.find_elements_by_class_name("_3wU53n") ]
offer_price += [ post2.text for post2 in driver.find_elements_by_css_selector("._1vC4OE._2rQ-NK") ]
你想要单圈的原因是什么?似乎它们是不相关的元素。如果你看到这些网站,我想获得敲定价格(文本装饰:线通过;)一些时间价值将存在一些时间价值将不存在。我将所有信息放入数组中,如移动链接、移动名称等。。当我试图得到罢工的价值是给予指数超出范围的问题。问题是
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()
mobile_link += [ post.get_attribute("href") for post in driver.find_elements_by_class_name("_1UoZlX") ]
mobile_name += [ post1.text for post1 in driver.find_elements_by_class_name("_3wU53n") ]
offer_price += [ post2.text for post2 in driver.find_elements_by_css_selector("._1vC4OE._2rQ-NK") ]