я использую селен для сбора данных с веб-сайта электронной коммерции, поэтому не все элементы с доступными в каждом элементе.
Когда я перемещаю его в pandas фрейм данных, только запись всех элементов записывается только в строку, в строку Отсутствие одного или нескольких элементов исчезает, как я могу это исправить. Результат, который я ожидаю, будет состоять из строки со всем элементом, если элемент, недоступный в этом элементе, будет иметь значение null
Это мой код.
import selenium
from selenium import webdriver
from selenium.common.exceptions import *
import pandas as pd
import csv as csv
import openpyxl
webdriver_path = 'D:/Python/ChromeDriver/chromedriver.exe'
lazada_url = 'https://www.lazada.vn/'
search_item = 'Trà ô long'
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('start-maximized')
options.add_argument('disable-infobars')
options.add_argument('--disable-extensions')
browser = webdriver.Chrome(webdriver_path, options=options)
browser.get(lazada_url)
search_bar = browser.find_element_by_id('q')
search_bar.send_keys(search_item)
search_button = browser.find_element_by_class_name('search-box__button--1oH7')
search_button.click()
item_title = browser.find_elements_by_class_name('c16H9d')
item_price = browser.find_elements_by_class_name('c13VH6')
item_price_before_discount = browser.find_elements_by_class_name('c1-B2V')
item_price_discount_percent = browser.find_elements_by_class_name('c1hkC1')
item_location = browser.find_elements_by_class_name('c2i43-')
if item_price_discount_percent is None: item_price_discount_percent = 0
if item_price_before_discount is None: item_price_before_discount = 0
# Empty list
titles_list = []
price_list = []
item_price_before_discount_list = []
item_price_discount_percent_list = []
item_location_list= []
#loop
for title in item_title:
titles_list.append(title.text)
for price in item_price:
price_list.append(price.text)
for price_before in item_price_before_discount:
item_price_before_discount_list.append(price_before.text)
for discount_percent in item_price_discount_percent:
item_price_discount_percent_list.append(discount_percent.text)
for location in item_location:
item_location_list.append(location.text)
dfL = pd.DataFrame(zip(titles_list,price_list,item_price_before_discount_list,item_price_discount_percent_list,item_location_list), columns=['ItemName','Price','Price Before Discount','Discount Percent','Location'])
dfL['Price'] = dfL['Price'].str.replace('₫','')
dfL['Price Before Discount'] = dfL['Price Before Discount'].str.replace('₫','')
dfL['Buy'] = dfL['Buy'].str.replace(['Location'],'')
print(dfL)
dfL.to_excel(r'C:\Users\Dell\Desktop\export_dataframe.xlsx', index=True, header=True)
browser.quit()