It seems to me that the HTML parser is not perfect and there are people facing similar problem to yours – Beautiful Soup findAll doesn’t find them all.
I ran your code and I get the same problem. The bug already happens at the ‘find’ and ‘findAll’ method already — Based on the first page, it seems that only sponsored products are not extracted for some unknown reason to me.
Have you tried Selenium instead? In my experience, Selenium gives less problem for me and saved me so much time as compared to other web scraping libraries. But that’s just my opinion. 🙂
CLICK HERE to find out more related problems solutions.