Scraping niv2

RomainGA Messages postés 110 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 19 mai 2024 - Modifié le 2 janv. 2024 à 15:56
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 5 janv. 2024 à 16:22

Bonjour,

Mon patron ma demandé de lui scrapper un site d'annonce (je ne peux pas donner l'URL, malheureusement).

Comme je ne se savais pas faire, j'ai regardé un tutoriel sur YouTube, et je suis coincé à 11:33

Je ne comprends pas mon erreur, à l'aide s'il vous plaît

2 réponses

jordane45 Messages postés 38311 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
30 déc. 2023 à 22:27

Bonjour

Je pense que tu pourrais regarder du côté de la librairie beautifulsoup4.

Après, pour pouvoir t'aider, il faudrait que l'on voit le code source de la page concernée...

Mais visiblement ton message d'erreur actuel semble indiquer que l'élément sur lequel tu essayes de récupérer l'attribu href ne possède pas cet attribut..


0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
2 janv. 2024 à 16:09

J'ajouterais quelques éléments :

  • Tout d'abord, merci d'éviter les captures d'écran et de copier coller le texte (ici ton code source et ta trace d'erreur) puis de les partager comme expliqué ici. C'est bien plus pratique pour tout le monde et plus écologique.
  • Je ne vois pas trop pourquoi tu ne peux pas partager l'URL qui nous permettrait de répondre plus précisément, mais au pire tu peux partager un fichier anonymisé minimal.
  • Ici le problème n'est pas exactement celui décrit par Jordane45.
    • Quelque soit le langage de programmation (Java, Python, C, ...) lorsque tu tentes d'accéder à l'attribut d'une instance d'objet, tu dois t'assurer que ladite instance est définie (i.e. non nulle).
    • Ici, tu tentes d'appliquer ".attributes", or ce qui est à gauche du "." vaut None, d'où l'erreur.
    • Il faut donc comprendre pourquoi produit.css_first("...") vaut None et donc pourquoi la méthode css_first a retourné None. C'est très probablement parce que ce que tu cherches n'est pas trouvé. Est-ce à cause de l'espace en début de chaîne ? De l'étoile devant le = ? Ou parce qu'il n'y a réellement rien dans ton fichier d'entrée ?
    • En tout rigueur, tu dois quand tu fais une recherche que ce que tu cherches a été trouvé.
profile_container = produit.css_first("...")
if profile_container is not None:
    href = profile_container.attributes.get("href")
    if href is not None:
        print(f"href = {href}")

Bonne chance

0
RomainGA Messages postés 110 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 19 mai 2024 6
3 janv. 2024 à 18:36
0
jordane45 Messages postés 38311 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
Modifié le 3 janv. 2024 à 18:49

Oui et ??

As tu lu ce qui t'a été répondu dans les deux messages précédents ?

Enfin bon, au moins ... on sait sur quel site tu bosses.... 

0
jordane45 Messages postés 38311 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > jordane45 Messages postés 38311 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024
3 janv. 2024 à 21:12

Pour ce qui est du message d'erreur.... il suffit de le lire et de regarder le code qui s'y rapporte... ( à croire que ce n'est pas toi qui l'a écrit..)

Un indice :

0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802 > jordane45 Messages postés 38311 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024
5 janv. 2024 à 16:22

Sacré site, ahahaha :-) Il a des drôles de tâches pour toi ton patron :')))))

1