use lxml.html and cssselectors instead of BeautifulSoup because it's way faster