Récupérer les données de societe.com (scraping Python)

Dans le cadre d’un projet de recherche, on a eu besoin, avec deux amis data scientist (Mathis Mourey & Camilo Contreras) de scraper societe.com pour obtenir les données financières de plusieurs vignerons. Du coup, on s’est fait un petit code (sur Python) que je voulais partager (Gist ici et Jupyter Notebook en PJ)

Scraping_societe.com.ipynb (1.1 MB)

Il est correctement documenté mais quelques précisions :

  • pour scraper les données de telle ou telle société, il suffit d’ajouter l’URL de l’entreprise dans la liste « urlList »
  • de définir la période temporelle que vous voulez en actualisant les variables startYear et endYear
  • la troisième cellule sert juste à créer le dataframe
  • la quatrième à insérer les données scrapées dans le dataframe + créer le csv

Je reste dispo si vous avez des questions sur le script :smiley:

Pourquoi ne pas utiliser les donnés opendata diffusées pas l’inpi ?

2 « J'aime »

Je complète… avec le lien pour y accéder directement (sans avoir à ouvrir de compte, etc):

Elles sont archivées quotidiennement par mes soins.

1 « J'aime »

On a été séduit par la présentation des bilans financiers sous forme de table sur societe.com. Mais on ne connaissait pas les données de l’INPI. Merci @cquest beaucoup du partage ! poke @mathis.mourey @caarojasco

2 « J'aime »

Les tribunaux de commerces transmettent toutes ces infos à l’INPI, qui les publie en opendata.

Ceci permet de se passer de societe.com et autres services du genre, qui étaient les seuls destinataires historiques de ces données.
De même, l’INPI diffuse gratuitement les documents scannés que beaucoup de services en ligne font payer. Exemple (pris au pif): https://data.inpi.fr/entreprises/839567146

Comme cette ouverture casse des business-model historiques, ce n’est bien sûr pas trop mis en valeur par les uns et les autres.

3 « J'aime »

Souvenir du siècle dernier pour obtenir ces informations…

EURIDILE service issu d’un partenariat avec les tribunaux de commerce et l’INPI (déjà), qui a ensuite été disponible sur internet.

Bonjour,

Petite question car cela m’interpelle, y a t-il des lois ou des règles concernant le scrapping de données sur des sites comme société.com par exemple ? La réutilisation de ces données scrapper doit se faire dans quel cadre ?

Merci de votre retour.

J’avoue ne pas avoir creusé le sujet (ce qui n’est pas top). Je sais juste que c’est une pratique assez courante. Des journalistes du Monde et de Libération n’hésite pas à l’utiliser et à publier les données récoltées. Voir extrait d’entretien d’un rapport de recherche mentionnant ces données (p.15)

« Si l’on fait simplement du scraping sur Internet, ce n’est pas de l’open data, on est sur l’acquisition des données dont on ne maîtrise pas forcément les droits d’usage » (lead data scientist dans une société de service en informatique spécialisée en logiciels libres). « Je ne me pose jamais la question, ce qui pas forcément bien, dans notre travail si les données sont disponibles, on va les publier, ce n’est pas correct, mais, on fait comme ça » (data journaliste free‐lance, ancien du Monde et de Libération).

1 « J'aime »

En général, je jette un oeil sur les mentions légales et CGU du site en question.

Quand c’est un site de la sphère publique, il faut que j’y trouve une bonne raison pour ne pas le scraper.
Par contre, quand c’est un site de la sphère privée, c’est l’inverse…

Il y a de plus en plus de sites qui s’appuient sur des données opendata, donc un petit peu de recherche permet de remonter à la source, ce qui est préférable, ça évite les traitements intermédiaires et surtout c’est plus simple que de se lancer dans un scraping.

1 « J'aime »

Dans ma tête, il n’était pas possible de faire du scrapping et de réutiliser les données d’un site sans l’autorisation du site. Souvent même si les sites font de la récupération de données sur des sites Open data, il ajoute une valeur ajoutée à la donnée brute (cf société.com, kelquartier.com, …).

Je cherche toujours un cadre légal au scrapping.

En tout cas merci de vos éclaircissements sur ce sujet très complexe .

1 « J'aime »

@Aymerib, je serai preneur de textes/étude/documents qui donnent des indications claires à ce sujet si jamais tu as creusé le sujet.

@ArthurSz , non malheureusement je n’ai pas encore creusé le sujet, je suis preneur également de textes/études/documents. Je vais commence à regarder de mon côté et voir ce qui est légal de faire.

1 « J'aime »

C’est vrai, tout le monde le fait, mais il y a parfois des actions en justice (LinkedIn si je me souvient bien, a lancé une centaine de procès il y a quelques années). Dans tous les cas si je faisais ce genre de chose je n’y associerais pas mon nom…

@cquest Génial ton site, merci ça m’a beaucoup aidé pour récupérer les données de l’INPI.

Je galère depuis quasiment une semaine à essayer de les récupérer, je suis passé d’abord par l’API, mais ça bloque à 10 000 documents, puis j’ai essayé de passer en FTP via filezilla, puis via un code python et la librairie ftplib, mais là, grosse galères de connexions instables (l’INPI bloque à maximum 5 connexions en paralèlle, mais je n’ai pas l’impression d’en avoir autant, et le code plante à chaque fois)… Je n’arrive pas à télécharger plus de quelques milliers de fichiers à nouveau, hors il y en a en fait plusieurs milllions.

Est-il possible que tu m’indiques comment tu as fait pour les récupérer aussi proprement (tu es passé par ftp ?) ? Je pourrais continuer à passer par ton site, mais si possible j’aimerais pouvoir passer directement par l’INPI de façon à être plus indépendant… (au cas où tu arrêterais un jour de faire ce scrapping par exemple…) vu que je fais ça dans un contexte pro.
Merci infiniment pour ton aide, Thomas
(Pour info, il me semble qu’il manque le stock titmc dans les fichiers)

Oui, je passe par leur FTP, mais comme je récupère incrémentalement ce qui est nouveau, ça reste en dessous des limites imposées par l’INPI.

Je repackage ça dans des fichiers moins nombreux pour éviter des millions de téléchargements chez moi aussi. Vu que les années s’accumulent, je pourrais repackager maintenant les années passées.

Rien de magique, la première récupération a pris plusieurs jours.

Hello, merci pour ta réponse !
En fait ça ne répond pas vraiment à ma question : comment fais tu pour faire ce gros extrait initial? Je suis bien sûr prêt à faire tourner mon code quelques jours mais comme je te disais c’est impossible, la connexion avec le serveur est instable, je suis éjecté pour des raisons toujours différentes…
Est ce que tu utilises python et ftplib ou autre chose ?
Merci à toi,
TB

Le plus simple:

  • tu récupères le stock complet (stocks + flux jusqu’à ce jour) depuis mon mirroir
  • tu récupères ensuite depuis le FTP de l’INPI les flux au fur et à mesure

De cette façon, tu n’es pas dépendant sur le long terme de mon mirroir.

Pour la récupération des fichiers, j’utilise tout simplement wget en mode mirroring :


wget -nv -r --level=8 -m --reject ".listing" -c -N --secure-protocol=auto --no-proxy --ftp-user=$USER --ftp-password=$PASS --no-check-certificate ftps://opendata-rncs.inpi.fr/public/IMR_Donnees_Saisies/$DATE

Un script quotidien lancé par cron remonte jusqu’à 10 jours en arrière, au cas où j’en loupe.
Ensuite, je repackage ça en une archive compressée quotidienne.

1 « J'aime »

Ça me semble une très bonne idée effectivement. J’aurais préféré pouvoir récupérer directement le stock et les flux mais c’est déjà pas mal du tout en faisant juste un update des éléments récents !
Merci pour ton soutien et ce miroir car j’étais prêt à abandonner. Là j’ai pu tout récupérer en une heure je crois.

1 « J'aime »

A tout hasard je me permet de partager : https://annuaire-entreprises.data.gouv.fr/
qui expose notamment les données de l’INPI et bien d’autres

Disponible sous forme d’API ?