Main differences:
- an interface has no implementation at all, whereas an abstract base class can implement common functionality
- a class can only inherit from one base class, but it can implement multiple interfaces
In your case, it's likely that all your scraper classes will need some common features, so it makes sense to make them all inherit from a common base class