DB_JOB/작업파일/공공기관3/완료/5.한국임업진흥원/_counts.py
2026-06-26 09:47:44 +09:00

49 lines
2.3 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import requests, io, re
from bs4 import BeautifulSoup
hd={"User-Agent":"Mozilla/5.0"}
BASE="https://www.kofpi.or.kr"
out=io.open("_counts_out.txt","w",encoding="utf-8")
def cnt(u):
# try last page then count items, or find total via number column
r=requests.get(BASE+u,headers=hd,timeout=25); r.encoding=r.apparent_encoding
s=BeautifulSoup(r.content,"html.parser")
txt=s.get_text(" ",strip=True)
m=re.search(r"(?:총|전체)\s*(?:게시물)?\s*[:]?\s*([\d,]+)\s*(?:건|개)",txt)
tot=m.group(1) if m else None
# board number column (sequential) max -> total
nums=[]
for td in s.select("table tbody tr td.num, table tbody tr td:first-child, .num, td.no"):
t=td.get_text(strip=True)
if t.isdigit(): nums.append(int(t))
# gallery items
gal=len(s.select(".gallery li, .photo_list li, ul.list_gallery li, .bbs_gallery li, li.gallery"))
return tot, (max(nums) if nums else None), gal
for nm,u in [
("임산물레시피","/info/imupStory/forestStory_02.do"),
("세계목재300종","/info/imupStory/wood_03.do"),
("해외시장보고서","/info/exportInfo/exportData_02.do"),
("연구보고서수출","/info/exportInfo/exportData_03.do"),
("통계자료수출","/info/exportInfo/exportData_04.do"),
("발굴업체홍보","/info/exportInfo/exportData_05.do"),
("임업기계장비수출","/info/exportInfo/exportData_06.do"),
("기술이전현황","/info/tech/techComm_01_02.do"),
("사업화성공사례","/info/tech/techComm_01_03.do"),
("보유특허정보","/info/tech/techComm_01_01.do"),
("기술자료집","/info/tech_06.do"),
("관련양식기술","/info/tech/techComm_03_01.do"),
("목재제품규격품질검사","/service/introduceInfo_04.do"),
("KS인증","/service/introduceInfo_11.do"),
("임업기계장비인증","/service/introduceInfo_34.do"),
("조달물자검사","/service/introduceInfo_48.do"),
("수출업체","/info/exportInfo/exportSite_02_01.do"),
("관련사이트수출","/info/exportInfo/exportSite_02_02_01.do"),
("기관별지원사업","/info/exportInfo/govSupport_03_01.do"),
("내게맞는지원사업","/info/exportInfo/govSupport_04_01_01.do"),
]:
try:
tot,mx,gal=cnt(u)
out.write(f"{nm} {u} total={tot} maxnum={mx} gallery={gal}\n")
except Exception as e:
out.write(f"{nm} {u} ERR {e}\n")
out.close(); print("done")