import requests, sys, bs4, urllib, datetime from dateutil.relativedelta import relativedelta term = sys.argv[1].encode('euc-kr') term = urllib.parse.quote_plus(term) startdate = datetime.datetime.now() - relativedelta(months=2) enddate = datetime.datetime.now() + relativedelta(months=1) startdate = startdate.strftime('%Y%m%d') enddate = enddate.strftime('%Y%m%d') url = "https://www.s2b.kr/S2BNCustomer/stmo001.do" dataa = "forwardName=list&pageNo=1&tender_num=&tender_step_code=&page_flag=&tender_sep1=1" + \ "&tender_name=" + term + "&company_name_s=&tender_sep2=1" + \ "&tender_date_start=" + startdate + "&tender_date_end=" + enddate + \ "&tender_item=0001&city=" url = url + "?" + dataa resp = requests.get(url) resp.raise_for_status() resp.encoding='EUC-KR' html = resp.text bs = bs4.BeautifulSoup(html, 'html.parser') trs = bs.select('table.td_dark_line tr') newArr = [] for i in range(len(trs)): if i > 5: if i%2 == 0: txtSrc = bs4.BeautifulSoup(str(trs[i - 1]) + str(trs[i]), 'html.parser') newArr.append(txtSrc) res = [] for i in range(len(newArr)): cnts = newArr[i].select('td') tdsele = {} tdsele["src"] = "s2b" tdsele["term"] = sys.argv[1] tdsele["type"] = cnts[2].getText().strip() tdsele["budget"] = "" tdsele["commitDate"] = "" tdsele["dept"] = cnts[6].getText().strip() tdsele["name"] = cnts[3].getText().strip() urlinfo = "https://www.s2b.kr/S2BNCustomer/stmo001.do?forwardName=view&tender_num=" + cnts[1].getText().strip() tdsele["detailurl"] = urlinfo tdsele["applyDateFrom"] = cnts[7].getText().strip() tdsele["applyDateTo"] = cnts[8].getText().strip() if tdsele["name"] != "": res.append(tdsele) print(res)