생각의 범위가 점점 늘어다나보니 만들고자 하는 작은 메크로가 점점 비대해진다. 고로 데이터베이스가 필요하게 되어 이제 sqlite3을 활용하여 데이터를 그나마 체계적으로 관리하고자 DB를 접목하는 중이다.
insert 메소드 생성
def get_product_url(product_info):
# SQLite 데이터베이스 연결
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 데이터 삽입
cursor.execute("INSERT INTO goods_url (keyword, good_title, good_price, good_url, review_cnt, scrab_date, scraping_used) VALUES (?, ?, ?, ?, ?, datetime('now'), 0)", product_info)
# 변경사항 저장 (커밋)
conn.commit()
# 연결 종료
conn.close()
위 메소드는 product_info라는 배열로
- keyword
- good_title
- good_price
- good_url
- review_cnt
5개의 스크랩핑 된 데이터를 DB에 insert하는 메소드이다.
insert문 작성 시 주의사항
? 하나는 필드값 하나를 의미하며 그 값이 int, text건 ” , “” 부호 상관없이 받을 수 있다. 쉬어보이나 나는 한참 헤멧다.
datetime(‘now’)는 현재시간을 입력할 수 있게 가지고 오는 호출문이다. 날짜만 가지고 오고 싶다거나, 시간만 가지고 오고 싶다면 그에 맞게 수정해주면 된다. 물론 나는 우선 받아온 다음 이후 실제 사용할 select문에서 가공해서 출력하기 때문에 입력은 default값으로 하는 걸 우선한다.
그리고 변수를 입력받지 않고 고정값을 넣으려면 문자열의 경우 ” 처리하고 숫자형의 경우 그냥 쓴다.
요정도만 주의하면 에러없이 잘 작동할 것이다.
입력된 결과값 확인
데이터가 잘 저장된다. 이제 어떤 방식으로 가공해서 보여 주느냐를 생각해보자…