SPB Git

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%
1.6 KB · 40 lines python
Raw Blame History
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