Partie 2 : Acquisition de données externes

Partager

Retrouvez la Partie 1 de la série de blogues ici : https://deepsense.ca/2022/02/09/blog-building-your-own-dataset-for-machine-learning/

Regardez la séance Découverte d’Amit sur la façon de bâtir un jeu de données basé sur des images : https://www.youtube.com/watch?v=3TT4hySJVvA


Voici quelques-unes des bibliothèques les plus pertinentes pour le web scraping :

  • Requests : une bibliothèque Python pour effectuer des requêtes HTTP comme GET, POST, etc. Elle est beaucoup plus simple et facile à utiliser que la bibliothèque intégrée urllib. Cependant, elle ne peut récupérer que du contenu web statique, ce qui signifie qu’elle ne peut pas gérer les sites écrits uniquement en JavaScript.
  • BeautifulSoup : probablement la bibliothèque Python la plus utilisée pour le web scraping, elle sert à analyser les documents HTML et XML récupérés. La bibliothèque lxml est aussi un analyseur couramment utilisé par BeautifulSoup.
  • Selenium : conçu à l’origine pour tester automatiquement les applications web, il a ensuite été adapté pour le web scraping. Le pilote Selenium (web driver) peut gérer les sites en JavaScript et effectuer des actions comme cliquer sur une page, remplir des formulaires, défiler, etc. Bien qu’il soit facile à utiliser pour les débutants et capable de gérer du contenu dynamique, cela se fait au prix d’une vitesse plus lente, ce qui le rend peu adapté aux projets à grande échelle.
  • Scrapy : c’est un cadre de web scraping conçu comme une solution complète qui fait tout le gros du travail pour vous. Il fournit des « spiders » capables d’explorer et d’extraire des données. Il permet aussi de créer des pipelines. Un autre avantage est que Scrapy est asynchrone, ce qui signifie qu’il peut effectuer plusieurs requêtes HTTP simultanément, ce qui permet d’économiser du temps et rend le processus plus efficace.

Aspects légaux du web scraping

Par nature, le web scraping n’est pas illégal (Hunter, 2021; Rocha, 2015). Cependant, tous les sites web ne permettent pas aux utilisateurs d’utiliser un script pour extraire leurs données. La plupart des grands réseaux sociaux n’autorisent l’accès qu’aux navigateurs comme Mozilla ou Chrome et bloquent tout script qui essaie d’accéder au site. Au Canada, le web scraping est utilisé par certaines institutions gouvernementales comme Statistique Canada (2021), mais il est aussi au cœur de batailles juridiques médiatisées, comme celle entre Mongohouse et le Toronto Real Estate Board (TREB) (Lifshitz, 2019). Selon la manière et la raison pour lesquelles il est effectué, le web scraping peut être du bon ou du mauvais côté de la loi. Dans le cas de Mongohouse vs TREB, toute l’entreprise de Mongohouse reposait sur le scraping et la distribution non autorisée d’informations MLS de TREB à des fins commerciales (Lifshitz, 2019). Hunter (2021) souligne que : « La Cour fédérale a clairement indiqué dans sa décision que le scraping non autorisé de contenu tiers sans consentement explicite est illégal ».

Faire du web scraping légalement

En général, la première étape pour savoir si un site permet le scraping est de consulter ses conditions d’utilisation ou toute autre documentation pertinente. De nombreux sites possèdent aussi un fichier robots.txt qui indique quels programmes sont autorisés et quelles parties du site peuvent ou non être scrappées. En plus du scraping, certains sites offrent d’autres alternatives légales comme une API. Si un site dispose déjà d’une API, il décourage fort probablement le scraping. Lorsqu’il n’est pas clair si le scraping est permis, la meilleure chose à faire est de contacter les administrateurs et de demander.

Références :

Rocha, R. (2015, 15 octobre). On the ethics of web scraping. Récupéré de : https://robertorocha.info/on-the-ethics-of-web-scraping/.

Lifshitz, R. L. (2019, 13 mai). Federal Court makes clear: Website scraping is illegal. Récupéré de : https://www.canadianlawyermag.com/news/opinion/federal-court-makes-clear-website-scraping-is-illegal/276128.

Hunter, M. (2021, 6 avril). How to Legally Scrape the Web for Your Next Data Science Project. Récupéré de : https://medium.com/modern-programmer/how-to-legally-scrape-the-web-for-your-next-data-science-project-8a19250e5f9b.

Statistique Canada. (2021, 15 novembre). Web scraping. Récupéré de : https://www.statcan.gc.ca/en/our-data/where/web-scraping.