refactor: replace libxml2 to BeautifulSoup