spb/fabri-ka Public
Agrégateur de produits québécois — www.fabri-ka.com
HTML 57.9%
Python 18.6%
TypeScript 15.6%
CSS 7.8%
1import requests, re, collections2from urllib.parse import urlparse3HDRS={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126 Safari/537.36"}4def fetch(u):5 try: return requests.get(u,headers=HDRS,timeout=20).text6 except Exception as e: return ""7def urls_from(xml):8 return re.findall(r"<loc>\s*(.*?)\s*</loc>", xml)9def expand(root, depth=0):10 xml = fetch(root)11 locs = urls_from(xml)12 out=[]13 if "<sitemapindex" in xml and depth<2:14 for l in locs: out += expand(l, depth+1)15 else:16 out = locs17 return out18SITEMAPS = {19 "alimentsduquebec": "https://alimentsduquebec.com/sitemaps-1-sitemap.xml",20 "lesproduitsduquebec": "https://lesproduitsduquebec.com/sitemap.xml",21 "metiersdart": "https://www.metiersdart.ca/sitemap.xml",22 "vinsduquebec": "https://vinsduquebec.com/sitemap.xml",23 "cidreduquebec": "https://cidreduquebec.com/wp-sitemap.xml",24 "ambq": "https://ambq.ca/sitemap.xml",25 "fromagesdici": "https://www.fromagesdici.com/sitemap.xml",26 "erabledici": "https://www.erabledici.ca/sitemap_index.xml",27 "terroiretsaveurs": "https://terroiretsaveurs.com/sitemap_index.xml",28 "marchespublics": "https://www.marchespublicsduquebec.ca/sitemap.xml",29 "artisansaloeuvre": "https://artisansaloeuvre.com/sitemap_index.xml",30}31for name, sm in SITEMAPS.items():32 urls = expand(sm)33 pat = collections.Counter()34 for u in urls:35 p = urlparse(u).path36 segs = [s for s in p.split("/") if s]37 pat["/"+segs[0]+"/*" if segs else "/"] += 138 print("="*60); print(name, "total:", len(urls))39 for k,v in pat.most_common(12): print(f" {v:6d} {k}")40