Отсутствует строка, когда элемент недоступен селен - PullRequest
0 голосов
/ 27 апреля 2020

я использую селен для сбора данных с веб-сайта электронной коммерции, поэтому не все элементы с доступными в каждом элементе.

Когда я перемещаю его в 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...