Scraping niv2

RomainGA Messages postés 110 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   -

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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 

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   Statut Membre Dernière intervention   6
 
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 

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 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 

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

1