58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
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) |