Мне нужно почистить веб-сайт электронной коммерции, который загружает 45 продуктов на первой странице, а затем загружает дополнительно 45 продуктов при прокрутке до конца страницы.
Я использую Python - Selenium Web Driver для очистки этой страницы.
Кажется, что Ajax заменяет контейнер при каждой последующей перезагрузке и, следовательно, не может извлечь все данные после загрузки всех продуктов.
Прикрепление кода для вашей ссылки.пожалуйста, покажите мне, как очистить все продукты
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import pandas
from numpy import long
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
driver = webdriver.Chrome()
html=driver.get("https://www.ajio.com/women-jackets-coats/c/830316012")
assert 'Ajio' in driver.title
content = driver.find_elements_by_class_name('item')
totalitems=long(driver.find_element_by_class_name('length').text.strip(' Items Found').replace(',','',10))
loop_count=int(((totalitems-len(content))/len(content)))
print(loop_count)
data=[]
row=['Brand','Description','Offer_Price','Original_Price','Discount']
data.append(row)
for i in range(1,loop_count):
content = driver.find_elements_by_class_name('item')
print(i)
print(len(content))
for item in content:
row=[]
row.append(item.find_element_by_class_name('brand').text.strip())
row.append(item.find_element_by_class_name('name').text.strip())
row.append(item.find_element_by_class_name('price').text.strip().strip('Rs. '))
try:
row.append(item.find_element_by_class_name('orginal-price').text.strip('Rs. '))
except NoSuchElementException as exception:
row.append(item.find_element_by_class_name('price').text.strip('Rs. '))
try:
row.append(item.find_element_by_class_name('discount').text.strip())
except NoSuchElementException as exception:
row.append("No Discount")
data.append(row)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight-850);")
try:
myElem = WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CLASS_NAME, 'loader')))
except TimeoutException:
print("Loading took too much time!")
df = pandas.DataFrame(data)
df.to_csv("C:\Ajio.csv", sep=',',index=False, header=False, mode='w') #mode='a' for append