fix soup parser

This commit is contained in:
Simon 2024-02-20 14:19:57 +01:00
parent 046603b897
commit d8f54da49b
Signed by: simon
GPG Key ID: 2C15AA5E89985DD4
1 changed files with 11 additions and 2 deletions

View File

@ -19,6 +19,9 @@ class ChromeExtension:
def get(self):
"""get parsed users"""
soup = self.get_soup()
if not soup:
return 0
users = self.parse_field(soup)
return users
@ -26,14 +29,20 @@ class ChromeExtension:
def get_soup(self):
"""get the soup"""
url = f"https://chromewebstore.google.com/detail/tubearchivist-companion/{self.extension_id}?hl=en&authuser=0" # noqa: E501
response = requests.get(url, headers=self.HEADERS)
response = requests.get(url, headers=self.HEADERS, timeout=30)
if not response.ok:
print(
f"failed to get {url}, {response.status_code} {response.text}"
)
return None
soup = BeautifulSoup(response.text, "html.parser")
return soup
def parse_field(self, soup):
"""extract the number"""
char_field = soup.find("span", {"class": "e-f-ih"}).text
char_field = soup.find("div", {"class": "F9iKBc"}).text
users = int(re.sub(r"[^\d]+", "", char_field))
return users