Soucis scrapping
Fermé
Raydoudou
-
Modifié le 12 juil. 2022 à 23:37
mamiemando Messages postés 33490 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 24 janvier 2025 - 13 juil. 2022 à 00:03
mamiemando Messages postés 33490 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 24 janvier 2025 - 13 juil. 2022 à 00:03
2 réponses
jordane45
Messages postés
38392
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2025
4 731
10 juil. 2022 à 18:23
10 juil. 2022 à 18:23
Bonjour,
Essaye
if res is not None: res1=res.text else: res1="None" l.append(str(res1))
mamiemando
Messages postés
33490
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
24 janvier 2025
7 817
Modifié le 13 juil. 2022 à 00:08
Modifié le 13 juil. 2022 à 00:08
Bonjour,
Merci de soigner l'orthographe et surtout, merci d'éviter les captures d'écran, qui ne sont pratiques pour personne (un bon vieux copier coller sera plus lisible et plus écologique).
La chaîne de caractère que tu récupères semble impliquer des caractères unicode. Comment appelles-tu get_page ? Car quand je teste, div_gris ne contient rien. J'ai l'impression que ce que tu veux écrire c'est plutôt ça :
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup from pprint import pprint def get_page(entreprise): """Download a webpage and return a beautiful soup doc""" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36" } response = requests.get("https://fr.finance.yahoo.com/quote/{0}/balance-sheet?p=%7B0%7D".format(entreprise), headers= headers) if not response.ok: print("Status code:", response.status_code) raise Exception("Failed to load page {}".format("https://fr.finance.yahoo.com/quote/{0}/balance-sheet?p=%7B0%7D".format(entreprise))) page_content = response.text doc = BeautifulSoup(page_content, "html.parser") trs = doc.find("table", {"class" : "lookup-table"}).find_all("tr") ths = [ th.text for tr in trs for th in tr.find_all("th") ] rows = [ { th : td.text for (th, td) in zip(ths, tr.find_all("td")) } for tr in trs ] return rows pprint(get_page("orange"))
Bonne chance