first commit
This commit is contained in:
parent
36a100d40a
commit
f6731c06c8
|
|
@ -2,6 +2,10 @@ __pycache__/
|
|||
dist/
|
||||
build/
|
||||
Lib/
|
||||
.vscode/
|
||||
img/
|
||||
images/
|
||||
Include/
|
||||
Scripts/
|
||||
*.db_save_images/
|
||||
*.db_tao_save_images/
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 208 KiB |
File diff suppressed because it is too large
Load Diff
238
tao/baseDB.py
238
tao/baseDB.py
|
|
@ -1,238 +0,0 @@
|
|||
import sqlite3
|
||||
import openpyxl
|
||||
import logging
|
||||
|
||||
# 로거 인스턴스 가져오기
|
||||
logger = logging.getLogger('default_logger')
|
||||
|
||||
def create_db(db_name):
|
||||
conn = sqlite3.connect(db_name) # Create a connection to the SQLite database
|
||||
c = conn.cursor() # Create a cursor object
|
||||
|
||||
# If tables exist, delete them
|
||||
c.execute('''DROP TABLE IF EXISTS Keywords''')
|
||||
c.execute('''DROP TABLE IF EXISTS NaverShopping''')
|
||||
c.execute('''DROP TABLE IF EXISTS Taobao''')
|
||||
c.execute('''DROP TABLE IF EXISTS SubKeywords''')
|
||||
c.execute('''DROP TABLE IF EXISTS Matching''')
|
||||
c.execute('''DROP TABLE IF EXISTS SSCategoryCode''')
|
||||
|
||||
# Create tables
|
||||
c.execute('''
|
||||
CREATE TABLE Keywords(
|
||||
id INTEGER PRIMARY KEY,
|
||||
keyword TEXT,
|
||||
base_category TEXT,
|
||||
naver_code TEXT,
|
||||
isMatch INTEGER,
|
||||
MatchingUrl TEXT,
|
||||
MatchingCat TEXT,
|
||||
delvFee INTEGER,
|
||||
packingFee INTEGER,
|
||||
plusFee INTEGER,
|
||||
date_created TEXT DEFAULT (DATE('now', 'localtime')),
|
||||
time_created TEXT DEFAULT (TIME('now', 'localtime'))
|
||||
)''')
|
||||
logger.debug("테이블 Keywords 완성")
|
||||
|
||||
c.execute('''
|
||||
CREATE TABLE NaverShopping(
|
||||
id INTEGER PRIMARY KEY,
|
||||
keyword_id INTEGER,
|
||||
keyword TEXT,
|
||||
price INTEGER,
|
||||
productTitle TEXT,
|
||||
category1Name TEXT,
|
||||
category2Name TEXT,
|
||||
category3Name TEXT,
|
||||
category4Name TEXT,
|
||||
cat_code TEXT,
|
||||
openDate TEXT,
|
||||
mallCount INTEGER,
|
||||
keepCnt INTEGER,
|
||||
overseaTp INTEGER,
|
||||
reviewCount INTEGER,
|
||||
reviewCountSum INTEGER,
|
||||
scoreInfo INTEGER,
|
||||
naverPayAdAccumulatedDisplayValue INTEGER,
|
||||
mobileLowPrice INTEGER,
|
||||
lowPrice INTEGER,
|
||||
deliveryFeeContent INTEGER,
|
||||
dlvryLowPrice INTEGER,
|
||||
imageUrl TEXT,
|
||||
imgSz TEXT,
|
||||
localImagePath TEXT,
|
||||
searchKeyword TEXT,
|
||||
mallProductUrl TEXT,
|
||||
mallPcUrl TEXT,
|
||||
mallName TEXT,
|
||||
manuTag TEXT,
|
||||
mallInfoCache TEXT,
|
||||
purchaseCnt INTEGER,
|
||||
relatedTags TEXT,
|
||||
rank INTEGER,
|
||||
chinese_keyword TEXT,
|
||||
isMatch INTEGER,
|
||||
MatchingUrl TEXT,
|
||||
MatchingCat TEXT,
|
||||
delvFee INTEGER,
|
||||
packingFee INTEGER,
|
||||
plusFee INTEGER,
|
||||
tao_imageUrl TEXT,
|
||||
tao_itemID INTEGER,
|
||||
tao_localimage TEXT,
|
||||
unique_id TEXT,
|
||||
date_created TEXT DEFAULT (DATE('now', 'localtime')),
|
||||
time_created TEXT DEFAULT (TIME('now', 'localtime')),
|
||||
FOREIGN KEY(keyword_id) REFERENCES Keywords(id)
|
||||
)''')
|
||||
logger.debug("테이블 NaverShopping 완성")
|
||||
|
||||
c.execute('''
|
||||
CREATE TABLE Taobao(
|
||||
id INTEGER PRIMARY KEY,
|
||||
keyword_id INTEGER,
|
||||
taoItem_id INTEGER,
|
||||
item_name TEXT,
|
||||
imageUrl TEXT,
|
||||
price INTEGER,
|
||||
sales_volume INTEGER,
|
||||
itemUrl TEXT,
|
||||
tao_localimage TEXT,
|
||||
itemID INTEGER,
|
||||
chinese_keyword TEXT,
|
||||
isMatch INTEGER,
|
||||
MatchingUrl TEXT,
|
||||
MatchingCat TEXT,
|
||||
keywordSearchUrl TEXT,
|
||||
imageSearchUrl TEXT,
|
||||
rank INTEGER,
|
||||
date_created TEXT DEFAULT (DATE('now', 'localtime')),
|
||||
time_created TEXT DEFAULT (TIME('now', 'localtime')),
|
||||
FOREIGN KEY(keyword_id) REFERENCES Keywords(id)
|
||||
)''')
|
||||
logger.debug("테이블 Taobao 완성")
|
||||
|
||||
c.execute('''
|
||||
CREATE TABLE SubKeywords(
|
||||
id INTEGER PRIMARY KEY,
|
||||
keyword_id INTEGER,
|
||||
relatedTags TEXT,
|
||||
chinese_keyword TEXT,
|
||||
isMatch INTEGER,
|
||||
MatchingUrl TEXT,
|
||||
MatchingCat TEXT,
|
||||
date_created TEXT DEFAULT (DATE('now', 'localtime')),
|
||||
time_created TEXT DEFAULT (TIME('now', 'localtime')),
|
||||
FOREIGN KEY(keyword_id) REFERENCES Keywords(id)
|
||||
)''')
|
||||
logger.debug("테이블 SubKeywords 완성")
|
||||
|
||||
c.execute('''
|
||||
CREATE TABLE Matching(
|
||||
id INTEGER PRIMARY KEY,
|
||||
keyword_id INTEGER,
|
||||
naver_id INTEGER,
|
||||
taobao_id INTEGER,
|
||||
chinese_keyword TEXT,
|
||||
isMatch INTEGER,
|
||||
MatchingUrl TEXT,
|
||||
MatchingCat TEXT,
|
||||
sub_keyword_id INTEGER,
|
||||
date_created TEXT DEFAULT (DATE('now', 'localtime')),
|
||||
time_created TEXT DEFAULT (TIME('now', 'localtime')),
|
||||
FOREIGN KEY(keyword_id) REFERENCES Keywords(id),
|
||||
FOREIGN KEY(naver_id) REFERENCES NaverShopping(id),
|
||||
FOREIGN KEY(taobao_id) REFERENCES Taobao(id),
|
||||
FOREIGN KEY(sub_keyword_id) REFERENCES SubKeywords(id)
|
||||
)''')
|
||||
logger.debug("테이블 Matching 완성")
|
||||
|
||||
c.execute('''
|
||||
CREATE TABLE SSCategoryCode(
|
||||
id INTEGER PRIMARY KEY,
|
||||
cat_code TEXT,
|
||||
naver_code TEXT,
|
||||
cat1 TEXT,
|
||||
cat2 TEXT,
|
||||
cat3 TEXT,
|
||||
cat4 TEXT
|
||||
)''')
|
||||
logger.debug("테이블 SSCategoryCode 완성")
|
||||
|
||||
|
||||
conn.commit() # Commit the transaction
|
||||
conn.close() # Close the connection
|
||||
|
||||
def read_excel_category_data(db_name):
|
||||
|
||||
filename = 'baseXLS_Percenty.xlsx'
|
||||
sheet_name = '스스 카테고리'
|
||||
start_row = 2
|
||||
end_row = 4900
|
||||
|
||||
workbook = openpyxl.load_workbook(filename, data_only=True)
|
||||
sheet = workbook[sheet_name]
|
||||
# logger.debug(f"read_excel_category_data - B 선택된 시트 : {sheet}")
|
||||
|
||||
# data = []
|
||||
# for row in sheet.iter_rows(min_row=start_row, max_row=end_row, values_only=True):
|
||||
# data.append(row[0]) # assuming the data is in the first column (B)
|
||||
|
||||
data = []
|
||||
# for row in sheet.iter_rows(min_row=start_row, max_row=end_row, values_only=True):
|
||||
# category = row[0]
|
||||
# naver_code = row[1] # Assuming Naver_Code is in the second column
|
||||
# data.append((category, naver_code))
|
||||
|
||||
|
||||
for row in sheet.iter_rows(min_row=start_row, max_row=end_row, values_only=True):
|
||||
# Ensure the row has at least 2 elements (for category and naver_code)
|
||||
if len(row) >= 2:
|
||||
category, naver_code = row[0], row[1]
|
||||
data.append((category, naver_code))
|
||||
else:
|
||||
# Handle rows with insufficient data, e.g., by skipping or logging them
|
||||
logger.debug(f"Skipping row with insufficient data: {row}")
|
||||
|
||||
parse_data(db_name, data)
|
||||
|
||||
def parse_data(db_name, data):
|
||||
parsed_data = []
|
||||
|
||||
# for item in data:
|
||||
# if item: # Check if the item is not None or empty
|
||||
# cat_code = item[:10]
|
||||
# logger.debug(f"parse_data - cat_code : {cat_code}")
|
||||
# categories = item[11:].split("-", maxsplit=3)
|
||||
# while len(categories) < 4:
|
||||
# categories.append(None) # Fill with None if less than 4 categories
|
||||
# parsed_data.append((cat_code, *categories))
|
||||
|
||||
for category, naver_code in data: # Unpack cat_code and naver_code
|
||||
if category:
|
||||
cat_code = category[:10]
|
||||
# logger.debug(f"parse_data - cat_code : {cat_code}")
|
||||
categories = category[11:].split("-", maxsplit=3)
|
||||
while len(categories) < 4:
|
||||
categories.append(None)
|
||||
parsed_data.append((cat_code, naver_code, *categories))
|
||||
|
||||
insert_category_data_to_db(db_name, parsed_data)
|
||||
|
||||
def insert_category_data_to_db(db_name, data):
|
||||
conn = sqlite3.connect(db_name)
|
||||
c = conn.cursor()
|
||||
|
||||
for item in data:
|
||||
c.execute('''
|
||||
INSERT INTO SSCategoryCode (cat_code, naver_code, cat1, cat2, cat3, cat4)
|
||||
VALUES (?, ?, ?, ?, ?, ?)''', item)
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
|
||||
# if __name__ == "__main__":
|
||||
# db_name = 'keywords.db'
|
||||
# create_db(db_name) # Create the database and table
|
||||
BIN
tao/baseXLS.xlsx
BIN
tao/baseXLS.xlsx
Binary file not shown.
Binary file not shown.
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"type": "service_account",
|
||||
"project_id": "igneous-primacy-409723",
|
||||
"private_key_id": "9a9816ba7d7bcde45bc1f0f0f984586ad753022d",
|
||||
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCzx0uJieV+r8PU\ntdVrWrbpbMOXR0SIhCVKkM1GWEOF+p6c5Hd3WZz09ALdBWtIQkGNIodzwO4nKh3h\n9F0dNviY6zB86co6UkpdivOm+w6EOBA0qQSF5dCQsvsJ6FyWqZgNPBfZonlk96Hy\nCNtNbkUqxTEPXJQ751WiH0Ke9e6jhPQ9g2ORmDrW1ANNGD4r1dz9GUEegWkFouGE\nsjPgwXEO62i3cFxUuRNMFEE/bvIB/VNLYMqbo4osGfTXopl9N+lW0MJ0sINVnZaI\nImnU6I6F9NMRb1PjkXD/FsLl6lbE82dbZDTdq11rjA7KQqBNXne58DVwE3/dmowi\n3NaGdqkjAgMBAAECggEAAZbnNTXPeaBoxR5kKBbUFyw93Cv4kEoj82g/w8wGQ6og\nKE5hYATCz6MK8ScHrzhv4snX75hYgrAiWlvtltNkc9o75vEcgJwSyfWBr7BBsb4k\nAffBKDJ6P9+MFl3EIYMpxiHlT4Pag3sob/Wq8Y6ZK6sQXkOLR2VzD80G9AxEBZTt\n1Asa9lBXSnK5NCYLsRRX765YysrsQXd8tk6oqsLmcigWCr75nKgbELxiszOTKtLT\npb50y8cb0kDfMUXOltWojGIkhOKetbzmWA3EgXIIa75s9z8tUVE+vO6kSq3TuQXH\nwL+IwatWRlrco3G1LGsHtw2nPR2mljcCVZjvT/Z0gQKBgQDmOJIeobqku/bVDxcq\neLYrMV1/X7zTihox33C7w+ruVXB/edJxR+gROWVO9ufTIgfPTzkDkxZYvTiHA9hC\nz56vu1b2RNLgiGT9ASOvfR00xRSCE/FfaaN5VlWzGskuFUyWDthkbld78wEFLf19\nutsaV/9+RCGZNoGtRjjw4symSQKBgQDH6MI+wXejhAJyZrr2S5jvIlSKtY12QdU6\n+JhD+3OEBl+OndyfucD5HgjSJnMjnzRMML+mPFlcwqU1VmDeeTqSE/mmvyRAr9rm\nG6Xdh+dOngpqwpq9OGsqc+JZ8JF0bdn6V/g26LjkQgNnRCIFnARQ2UHBDoS2/wHn\n72ShlP9kCwKBgGlinADJp9ag9Gyza7dVao57GoGkIZv0K+mIjuJk3LYdBlJUQbD5\naZH45Bcxjw1nFowfh8nLGv+kHqwvZl+vCsUGzNgOyTlfNltamitK6oOtc6XX2zYB\n9YMlsjU6nb0qotROF2Bh4korAtyMIO3dC08T2TDDn12zRck7y/T43RWBAoGALEEO\nny3c+knC8OhlAxkBJg8HgB1oz4ELXx6hNot3qwZuKPgxWvqYCY3ojf0NCBm6ThOM\nmZRKhApi4Efa8eUMXkIlxhASSm+jmcUNFtl7DyBVVgT2lGTk9GTq+tYSnR+kXZMT\n07P5Gi6y6i1fCrbbDbrKn55DKu+Q0HNiZ5LAZrkCgYAp7Aa1rlbXbyoSXNWTA4Nc\nTZIRKj9Ra2hD2Y2EKjLWqLa9RVK+D9a9I/v1gW59PeRpUY9w674IEZXqOq5jx0D9\nFmwL00Omtfv96q+syq7pqSUmI7hDSd1CfLDaxCGHzGykI98GkjQDz6xPEgTAKRIL\njcB1KaEd55AuovwONS3qKA==\n-----END PRIVATE KEY-----\n",
|
||||
"client_email": "service-account@igneous-primacy-409723.iam.gserviceaccount.com",
|
||||
"client_id": "102875157826238718143",
|
||||
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
||||
"token_uri": "https://oauth2.googleapis.com/token",
|
||||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
||||
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/service-account%40igneous-primacy-409723.iam.gserviceaccount.com",
|
||||
"universe_domain": "googleapis.com"
|
||||
}
|
||||
3097
tao/outline10.ui
3097
tao/outline10.ui
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue