I made several improvements to the FWRD scraper to make it more reliable. The main change was switching from Selenium’s element selection to AngleSharp for HTML parsing. FWRD loads products via a lazy-load API endpoint, so now I fetch that endpoint directly and parse the HTML response with AngleSharp rather than trying to interact with the dynamically-loaded page.

I also added a configurable category setting via environment variable, so I can easily switch between scraping Coach bags or FWRD shoes without code changes. The image processing was improved to handle variable-width product images instead of assuming a fixed 628x628 size - it now preserves the aspect ratio and centers the image appropriately in the Twitter card canvas.