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, sys, concurrent.futures as cf2URLS = [3 "https://www.alimentsduquebec.com/",4 "https://lesproduitsduquebec.com/",5 "https://signelocal.com/",6 "https://www.metiersdart.ca/",7 "https://mangeonslocal.upa.qc.ca/",8 "https://vinsduquebec.com/",9 "https://cidreduquebec.com/",10 "https://ambq.ca/",11 "https://www.fromagesdici.com/",12 "https://erabledici.ca/",13 "https://www.terroiretsaveurs.com/",14 "https://www.ampq.ca/",15 "https://www.icriq.com/",16 "https://mazonequebec.com/",17 "https://www.donneesquebec.ca/",18 "https://uqmd.ca/",19 "https://www.economusees.com/",20 "https://conseildesarts? no",21]22HDRS={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126 Safari/537.36"}23def probe(u):24 if " " in u: return (u,"skip","","")25 try:26 r = requests.get(u, headers=HDRS, timeout=15, allow_redirects=True)27 t = r.text.lower()28 plat = []29 for sig,name in [("wp-content","wordpress"),("cdn.shopify","shopify"),("squarespace","squarespace"),("wixstatic","wix"),("drupal","drupal"),("woocommerce","woocommerce")]:30 if sig in t: plat.append(name)31 return (u, r.status_code, r.url, ",".join(plat), len(r.text))32 except Exception as e:33 return (u, "ERR", str(e)[:80], "", 0)34with cf.ThreadPoolExecutor(10) as ex:35 for res in ex.map(probe, URLS):36 print(res)37