# Scraping Cdiscount avec scrapy

**URL:** <https://www.growthhacking.fr/t/scraping-cdiscount-avec-scrapy/21870>\
**Category:** Scraping\
**Created:** [Novembre 22, 2020, 6:30 UTC](https://www.growthhacking.fr/t/scraping-cdiscount-avec-scrapy/21870 "2020-11-22T18:30:13Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![lyemow](https://www.growthhacking.fr/letter_avatar_proxy/v4/letter/l/7feea3/32.png) [@lyemow](https://www.growthhacking.fr/u/lyemow)\
**Post date:** [Novembre 22, 2020, 6:30 UTC](https://www.growthhacking.fr/t/scraping-cdiscount-avec-scrapy/21870/1 "2020-11-22T18:30:13Z")

</div>

Bonjour à tous,

J’essaye depuis quelques jours de scrapper un résultat de recherche sur cdiscount mais je n’y arrive pas.  
J’utilise Scrapy et Splash car cdiscount nécéssite du javascript pour fonctionner.

(J’ai bien essayé de me passer de splash en cherchant les requetes xhr qui chargent les données au niveau de la console dev + network, mais on dirait que les réponses du serveur sont crypté et surement décrypté par du JS coté client. Je n’arrive pas à le reverse engineering ).

J’arrive donc à scraper la premières page mais je n’arrive pas a simuler un clic sur le bouton pour passer à la page suivante.  
Scrapy me dit que je tente de scrapper du contenu dupliqué et au final je me retrouve avec un json contenant le meme résultat deux fois.

J’utilise le script suivant pour simuler le clic sur le bouton:

script = «&nbsp;&nbsp;»«&nbsp;function main(splash)  
assert(splash:go(splash.args.url))  
splash:wait(1)  
button = splash:select(‹&nbsp;.jsNxtPage&nbsp;›)  
splash:set\_viewport\_full()  
splash:wait(1)  
button:mouse\_click()  
splash:wait(1)  
return {url = splash:url(),  
html = splash:html()}  
end&nbsp;»«&nbsp;&nbsp;»

Et la page que je souhaite scraper est : [Captcha](https://www.cdiscount.com/search/10/rouge+a+levre.html#_his_)  
Plus les prochaines pages.

J’apprécierai beaucoup un coup de main 🙂

---

<div class="post-metadata">

**Author:** ![raz101](https://www.growthhacking.fr/letter_avatar_proxy/v4/letter/r/f07891/32.png) [@raz101](https://www.growthhacking.fr/u/raz101)\
**Post date:** [Novembre 22, 2020, 11:10 UTC](https://www.growthhacking.fr/t/scraping-cdiscount-avec-scrapy/21870/2 "2020-11-22T23:10:39Z")

</div>

Salut,

Tu dois changer la config de scrapy qui permet de [détecter les pages doublons](https://doc.scrapy.org/en/latest/topics/settings.html#dupefilter-class)  
De base ça ne prend pas en compte les params URL (après le ? donc)

A part ça, tu peux scrap Cdiscount avec des requêtes POST sous la forme  
`https://www.cdiscount.com/ProductListUC.mvc/UpdateJsonPage?page=`

Cdiscount ne nécessite pas de JS jusqu’à la pagination 9, pour celles d’après, il faut le faire en requête POST, ou en headless

---

<div class="post-metadata">

**Author:** ![lyemow](https://www.growthhacking.fr/letter_avatar_proxy/v4/letter/l/7feea3/32.png) [@lyemow](https://www.growthhacking.fr/u/lyemow)\
**Post date:** [Novembre 23, 2020, 12:19 UTC](https://www.growthhacking.fr/t/scraping-cdiscount-avec-scrapy/21870/3 "2020-11-23T12:19:54Z")

</div>

Okay merci beaucoup pour ces pistes !!  
Je vais tester ça et je t’en dirais des nouvelles ^^

---

<div class="post-metadata">

**Author:** ![lyemow](https://www.growthhacking.fr/letter_avatar_proxy/v4/letter/l/7feea3/32.png) [@lyemow](https://www.growthhacking.fr/u/lyemow)\
**Post date:** [Novembre 23, 2020, 4:53 UTC](https://www.growthhacking.fr/t/scraping-cdiscount-avec-scrapy/21870/4 "2020-11-23T16:53:11Z")

</div>

Rebonjour !

J’ai pu essayé la piste avec requête POST, ça fonctionne parfaitement et je peux récupérer quasiment tout ce que je souhaite obtenir excepté les bandeaux que l’on peut trouver au dessus d’un produit.  
(Exemple : [Screenshot by Lightshot](https://prnt.sc/vok6ce))

En explorant un peu plus j’ai pu apercevoir ceci dans le code source : [Screenshot by Lightshot](https://prnt.sc/vojz38)  
On peut y voir un script contenant TOUTES les informations que je souhaite exploiter.  
As-tu une idée de comment les récupérer sans avoir besoin de passer en headless?

Je n’ai cependant pas compris ce que tu voulais dire au niveau de la pagination, peu importe la page sur laquelle je me situe si je n’active pas le js, je ne reçois pas de résultats.

---

<div class="post-metadata">

**Author:** ![lyemow](https://www.growthhacking.fr/letter_avatar_proxy/v4/letter/l/7feea3/32.png) [@lyemow](https://www.growthhacking.fr/u/lyemow)\
**Post date:** [Novembre 27, 2020, 10:21 UTC](https://www.growthhacking.fr/t/scraping-cdiscount-avec-scrapy/21870/5 "2020-11-27T10:21:02Z")

</div>

Okay my bad j’ai trouvé et c’est biendisponible depuis l’url que tu m’as passé, désolé et merci encore 😃

---

<div class="post-metadata">

**Author:** ![Cyriou](https://www.growthhacking.fr/user_avatar/www.growthhacking.fr/cyriou/32/25312_2.png) [@Cyriou](https://www.growthhacking.fr/u/Cyriou)\
**Post date:** [Décembre 5, 2020, 8:16 UTC](https://www.growthhacking.fr/t/scraping-cdiscount-avec-scrapy/21870/6 "2020-12-05T20:16:22Z")

</div>

Bonjour,

comment obtenez-vous l’url pour la requête POST depuis un url standard ?

Merci d’avance

---

<div class="post-metadata">

**Author:** ![Scrapin](https://www.growthhacking.fr/user_avatar/www.growthhacking.fr/scrapin/32/32688_2.png) [@Scrapin](https://www.growthhacking.fr/u/Scrapin)\
**Post date:** [Juin 4, 2023, 10:34 UTC](https://www.growthhacking.fr/t/scraping-cdiscount-avec-scrapy/21870/7 "2023-06-04T10:34:21Z")

</div>

Bonjour,  
peux-tu partager ton code utiliser pour la methode POST s’il te plait 😇

---

<div class="post-metadata">

**Author:** ![SashaLobstr](https://www.growthhacking.fr/user_avatar/www.growthhacking.fr/sashalobstr/32/9991_2.png) [@SashaLobstr](https://www.growthhacking.fr/u/SashaLobstr)\
**Post date:** [Août 11, 2023, 6:04 UTC](https://www.growthhacking.fr/t/scraping-cdiscount-avec-scrapy/21870/8 "2023-08-11T18:04:34Z")

</div>

> [@Scrapin](#):
>
> peux-tu partager ton code utiliser pour la methode POST s’il te plait 😇

C’était une galère, mais voilà le **code complet version juillet 2023**

> **[Comment scraper cDiscount avec Python et requests en 2023?](https://www.lobstr.io/fr/blog/comment-scraper-c-discount-avec-python-et-requests-en-2023)**
>
> Sur cDiscount on peut acheter tout et n’importe quoi. On va voir comment scraper les produits avec Python et requests.

Barbecue d’été à l’honneur

🌝

---

<div class="post-metadata">

**Author:** ![Scrapin](https://www.growthhacking.fr/user_avatar/www.growthhacking.fr/scrapin/32/32688_2.png) [@Scrapin](https://www.growthhacking.fr/u/Scrapin)\
**Post date:** [Août 14, 2023, 1:02 UTC](https://www.growthhacking.fr/t/scraping-cdiscount-avec-scrapy/21870/9 "2023-08-14T01:02:06Z")

</div>

Entre temps j’ai développé une façons d’être le fair de mon côté je jetterais un coup d’œil à la vôtre 😉  
En tout cas un grand merci pour votre réponse 🙏
