사업자 번호를 이상하게 입력하는 사람들 땜시 홈택스 간단 크롤러를 작업했다
def company_no_search(request, company_no: str):
company_no = company_no.replace("-", "")
if len(company_no) == 10:
headers = {'Content-Type': 'text/xml'}
xml = "<map id='ATTABZAA001R08'><pubcUserNo/><mobYn>N</mobYn><inqrTrgtClCd>1</inqrTrgtClCd><txprDscmNo>" + company_no + "</txprDscmNo><dongCode>05</dongCode><psbSearch>Y</psbSearch><map id='userReqInfoVO'/></map>"
r = requests.post(
'https://teht.hometax.go.kr/wqAction.do?actionId=ATTABZAA001R08&screenId=UTEABAAA13&popupYn=false&realScreenId=',
data=xml, headers=headers)
if r.status_code == 200:
tree = elemTree.fromstring(r.text)
trtEndCd = tree.find('./trtEndCd').text
state = tree.find('./smpcBmanTrtCntn').text
description = tree.find('./trtCntn').text
success = False
if "등록되어 있는 사업자등록번호 입니다" in state.strip():
success = True
r = {"success": success, "company_no": company_no, "end_cd": trtEndCd, "state": state, "message": description}
new_company = CompanyNoSearch()
new_company.company_no = company_no
new_company.trt_end_cd = trtEndCd
new_company.state = state
new_company.description = description
new_company.success = success
new_company.save()
else:
r = {"success": False, "message": "조회 할 수 없습니다"}
else:
r = {"success": False, "message": "잘못된 사업자 번호"}
return HttpResponse(json.dumps(r), content_type="application/json")
해당 로직만 짤라 냈다 /ㅁ/
디펜던시는 requests 를 이용한다.
다만 홈텍스니깐.. 너무 마구 날리진 말자 ㅠㅠ
'Python > Base' 카테고리의 다른 글
시간 체크 클래스를 이용하여 스케줄 실행 코드 (0) | 2019.11.07 |
---|---|
시작 시간, 종료 시간 리스트가 현재 시간에 포함되어있는지 체크 (0) | 2019.11.07 |