파이썬

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

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

어제는 대량택배예약을 위한 기초 엑셀파일을 만드는 작업을 하였습니다.

지금은 어제 이어서 대량택배예약을 하기 위하여 받는사람의 주소와 우편번호를 자동으로 입력하는 방법이 없나?

하고 머리를 굴려보았습니다.

바로 네이버 검색을 통한 방법이 있었습니다.

그래서 어제 이어서 하나의 파일을 만들어서 주소검색과 함께 우편번호를 찾아보는 파일을 하나 만들어 보았습니다.

import requests, sys,re
from bs4 import BeautifulSoup as bs
		
def main():
	n = input('검색어 (q 를 입력하면 종료합니다.): ')
	if n == "q":
		print("종료합니다.")
		sys.exit()
	else:
		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=' + n
			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:
					print(zipnumbers)
					print(addr2.text)
				else:
					print(zipnumbers)
					print(addr.text)
					
if __name__ == "__main__":
	main()

코드는 위와 같습니다.

이 코드를 대량택배예약 코드와 합쳐서 받는 사람과 보내는 사람의 주소를 검색하면 자동으로 우편번호와 도로명주소를 입력하게 만들어 볼겁니다.

휴~ 명절이 다가오고 택배 업무를 많이 해야 될듯 싶어 시간이 있을때 만들어 보고 있는중입니다. 

 

728x90
반응형