파이썬

개인적으로 사용하려고 만든 택배예약 #3

귀신이보인다 2022. 1. 9. 12:40
728x90
반응형

아마도 최종 완성본이 될듯 싶습니다. ㅎㅎㅎ

from openpyxl import Workbook
import requests, sys,re
from bs4 import BeautifulSoup as bs


def addr(ein):
	header = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5)\AppleWebKit 537.36 (KHTML, like Gecko) Chrome","Accept":"text/html,application/xhtml+xml,application/xml;\q=0.9,imgwebp,*/*;q=0.8"}
	with requests.Session() as s:
		url2 = 'https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=' + ein
		req = s.get(url2)
		html = req.text
		gogo = bs(html, "html.parser")	
		test = gogo.findAll("div",{"class":"place_section_content"})
		for i in test:
			#우편번호를 찾는다.
			zipcode = i.find('span',{'class':'_3rnws'})
			zipcode_num = zipcode.text
			zipnumbers = re.sub(r'[^0-9]', '', zipcode_num)
			#도로명주소를 찾는다.
			addr = i.find('span', id='no-matched-address-list')
			#도로명 주소가 없어 검색된 주소로 반환한다.
			addr2 = i.find('div',{'class':'ITiBH'})
			if addr == None:
				d = zipnumbers
				e = addr2.text
			else:
				d = zipnumbers
				e = addr.text
		return [d,e]

def main():
	#workbook 생성하기(1개의 시트가 생성된 상태)
	workbook = Workbook()

	#현재 workbook의 활성화 된 Sheet 가져오기
	sheet = workbook.active
	sheet.title = "nh" #해당 sheet의 sheet명 변경하기
	# cell에 직접 데이터 입력하기
	sheet['A1'] = "받는분"
	sheet['B1'] = "휴대폰번호"
	sheet['C1'] = "일반전화번호"
	sheet['D1'] = "받는분우편번호"
	sheet['E1'] = "받는분주소"
	sheet['F1'] = "받는분상세주소"
	sheet['G1'] = "품목"
	sheet['H1'] = "물품금액(만원)"
	sheet['I1'] = "지불방법"
	sheet['J1'] = "비고"
	sheet['K1'] = "보내는분"
	sheet['L1'] = "휴대폰번호"
	sheet['M1'] = "일반전화번호"
	sheet['N1'] = "보내는분우편번호"
	sheet['O1'] = "보내는분주소"
	sheet['P1'] = "보내는분상세주소"
	sheet['Q1'] = "박스수량"
	sheet['R1'] = "물품명"
	sheet['S1'] = "추가운임"

	nh_data = []
	for ad in range(49):
		a = input('받는분 (q 를 입력하면 종료합니다.): ')
		if a == "q":
			print("입력을 종료하며 데이터를 저장중입니다.")
			break
		else:
			b = input('휴대폰번호 : ')
			c = b
			#d = int(input('받는분우편번호 : '))
			ein = input('받는분주소 (q 를 입력하면 종료합니다.): ')
			if ein == "q":
				print("종료합니다.")
				#sys.exit()
			else:
				d,e = addr(ein)
			f = input('받는분상세주소 : ')
			g = '일반식품'
			h = '10'
			i = '선불'
			j = '빠른배송부탁드립니다.'
			k = '테스트'
			l = '01012341234'
			m = l
			n = '012345'
			o = '테스트주소'
			p = '테스트상세주소'
			q = '1'
			r = '테스트박스'
			s = '없음'
			nh_data.extend([[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s]])
			print("데이터를 저장중입니다.")

	for i in nh_data:
	#	print(i)
		sheet.append(i)
	# 파일 저장하기
	workbook.save("nh.xlsx")
	
if __name__ == "__main__":
	main()

아마도 대량택배예약 파일은 만드는데에는 테스트를 진행해 보았습니다만... 실제 예약업무를 하지 않아서 잘될런지는 모르겠습니다만... 등록은 되는것은 확인해보았습니다.

이후 업무는 실제 업무를 해보고 추가할 업무가 있는지 확인해 보고 기능을 추가를 하던지 해봐야 겠습니다.

 

 * 추가

글을쓰고 내일 출고될 택배가 있어 테스트를 해보았습니다.

전화번호 입력부분에서 숫자입력 오류가 있어 방금 수정을 하였습니다.

실제 써보니 작동이 잘되니 기분은 좋습니다.

여기서 기능개선은 현재까지 택배예약을 한 고객을 DB화 시켜서 관리해보면 어떨까 싶어서 기능을 추가할 예졍입니다.

728x90
반응형