dev.altai / src /analyzer.py
prince1604
Initial commit for deployment
b458f3d
Raw
History Blame
1.6 kB
class ImageAnalyzer:
def analyze_site(self, site_data):
"""
Analyzes the crawled site data for missing ALT text.
:param site_data: Dict { page_url: [image_dicts] }
:return: Dict containing summary and detailed report.
"""
total_images = 0
total_missing_alt = 0
pages_report = []
for page_url, images in site_data.items():
missing_images = []
for img in images:
total_images += 1
alt_text = img.get('alt')
# Check for strictly missing alt text (None or empty string)
if not alt_text or alt_text.strip() == "":
# Double check if 'alt' attribute existed but was empty vs didn't exist?
# The crawler uses .get('alt', '') so it's '' if missing.
# User asked for "missing alt text".
# We will count empty string as missing alt text for SEO purposes.
missing_images.append(img['src'])
total_missing_alt += 1
pages_report.append({
"page_url": page_url,
"missing_alt_count": len(missing_images),
"images_without_alt": list(set(missing_images))
})
return {
"summary": {
"total_pages_scanned": len(site_data),
"total_images_found": total_images,
"total_images_missing_alt": total_missing_alt
},
"details": pages_report
}