Bon au final j'ai examiné plus attentivement la requête, pas besoin d'utiliser Selenium, les données sont présentes dans du HTML à une autre adresse :
https://bscscan.com/readContract?m=normal&a=0x97e5d50fe0632a95b9cf1853e744e02f7d816677&v=
Ensuite tu récupères les données avec le module requests (plus personne n'utilise urllib directement) et tu parses le HTML avec BeautifulSoup et le tour est joué :
import requests
from bs4 import BeautifulSoup
def get_price_per_full_share(url: str):
headers = {
"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:92.0) Gecko/20100101 Firefox/92.0"
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
return soup.select_one("div#readCollapse7 div.card-body form div.form-group a").text
if __name__ == "__main__":
url = "https://bscscan.com/readContract?m=normal&a=0x97e5d50fe0632a95b9cf1853e744e02f7d816677&v="
price = get_price_per_full_share(url)
print(f"Price Per Full Share: {price}")
Retourne :
Price Per Full Share: 1216105068615599192
Cette méthode est beaucoup plus rapide. Pense aussi à passer un user-agent valide (c'est pour ça que tu avais une réponse 403).