# -*- coding: utf-8 -*- import sys,io,urllib.request,ssl,re from bs4 import BeautifulSoup sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8') ctx=ssl.create_default_context(); ctx.check_hostname=False; ctx.verify_mode=ssl.CERT_NONE def get(u): try: req=urllib.request.Request(u,headers={'User-Agent':'Mozilla/5.0'}) return urllib.request.urlopen(req,timeout=20,context=ctx).read().decode('utf-8','ignore') except Exception as e: return 'ERR:%s'%e # 충주 sitemap 탐색 print('=== 충주 메인에서 사이트맵 링크 찾기 ===') h=get('https://www.chungju.go.kr/www/index.do') if not h.startswith('ERR'): for m in re.findall(r'href="([^"]*sitemap[^"]*)"',h)[:5]: print(' ',m) SITES={ '충주':'https://www.chungju.go.kr/www/sitemap.do', '단양':'https://www.danyang.go.kr/dy21/98', '영동':'https://www.yd21.go.kr/kr/html/guide/0701.html', '증평':'https://www.jp.go.kr/kor/sitemap_11.do', '진천':'https://www.jincheon.go.kr/home/sub.do?menukey=445', '보은':'https://www.boeun.go.kr/www/index.do', } for nm,u in SITES.items(): h=get(u) if h.startswith('ERR'): print(nm,'접속실패',h[:50]); continue s=BeautifulSoup(h,'html.parser') info=[] for sel in ['li.depth1_item','div.sitemap_box','a.h4','ul.bu','ul#menu_sitemap','ul.ld1','dl','ul.depth1_ul','div.sitemap','.snb','.lnb']: n=len(s.select(sel)) if n: info.append('%s=%d'%(sel,n)) print('%s len=%d | %s'%(nm,len(h),' '.join(info)))