Не сохраняется таблица в нормальном виде
Парсер должен брать определенные значения на странице, а потом сохранять их в dataframe. Но код не работает по двум причинам: либо из-за ошибки "ValueError: arrays must all be same length", либо при ее решение с помощью data = list(zip(titles, part_numbers, quantities)) все сохраняется в одну колонку. Не понимаю как решить и то, и то, чтобы все работало. Вот код, может кто-нибудь поможет.
url = 'https://partscatalog.deere.com/jdrc/sidebyside/equipment/74407/referrer/navigation/pgId/131928171'
driver = webdriver.Chrome()
driver.get(url)
time.sleep(10)
soup = BeautifulSoup(driver.page_source, 'html.parser')
titles = []
part_numbers = []
quantities = []
time.sleep(2)
for title_element in driver.find_elements(By.CSS_SELECTOR,'#applicationContainer > div.userInterface > div.content > div.viewContent > div.viewContentContainer > app-sidebyside > div > div > div.col-xs-12.col-sm-12.col-lg-6.col-xl-6.col-md-6.partList > div.partStoryPart.ng-scope.ng-star-inserted'):
title = title_element.text
titles.append(title)
# находим список комплектующих для текущего товара
components = title_element.find_element(By.CSS_SELECTOR,'#applicationContainer > div.userInterface > div.content > div.viewContent > div.viewContentContainer > app-sidebyside > div > div > div.col-xs-12.col-sm-12.col-lg-6.col-xl-6.col-md-6.partList > div.partStoryPart.ng-scope.ng-star-inserted > div:nth-child(2)')
for component in components.find_elements(By.CLASS_NAME,'row partresultsection widthLimit ng-star-inserted'):
part_number = component.find_element(By.CSS_SELECTOR,'#applicationContainer > div.userInterface > div.content > div.viewContent > div.viewContentContainer > app-sidebyside > div > div > div.col-xs-12.col-sm-12.col-lg-6.col-xl-6.col-md-6.partList > div.partStoryPart.ng-scope.ng-star-inserted > div:nth-child(2) > div > div.col-lg-6.col-sm-6.col-md-6.col-xl-6.col-xs-6.col-tn-12.left-section > div > div > div:nth-child(1) > div.col-xl-5.col-lg-5.col-xs-5.col-sm-5.col-md-4.text-muted.partNo').text
quantity = component.find_element(By.CSS_SELECTOR,'#applicationContainer > div.userInterface > div.content > div.viewContent > div.viewContentContainer > app-sidebyside > div > div > div.col-xs-12.col-sm-12.col-lg-6.col-xl-6.col-md-6.partList > div.partStoryPart.ng-scope.ng-star-inserted > div:nth-child(2) > div > div.col-lg-6.col-sm-6.col-md-6.col-xl-6.col-xs-6.col-tn-12.left-section > div > div > div:nth-child(1) > div.col-xl-5.col-lg-5.col-xs-5.col-sm-5.col-md-4.text-muted.partNo').text
part_numbers.append(part_number)
quantities.append(quantity)
# создание списка кортежей
data = {'Title': titles, 'Part Number': part_numbers, 'Quantity': quantities}
# создание DataFrame
df = pd.DataFrame(data)
df.to_excel('parts.xlsx', index=False)