Légalité du Web Scraping

Avec Python, nous pouvons gratter n'importe quel site Web ou des éléments particuliers d'une page Web, mais avez-vous une idée si c'est légal ou non? Avant de gratter un site Web, nous devons connaître la légalité du scraping Web. Ce chapitre expliquera les concepts liés à la légalité du web scraping.

introduction

En règle générale, si vous prévoyez d'utiliser les données récupérées à des fins personnelles, il se peut qu'il n'y ait aucun problème. Mais si vous prévoyez de republier ces données, avant de faire de même, vous devez faire une demande de téléchargement au propriétaire ou faire des recherches de base sur les politiques ainsi que sur les données que vous allez collecter.

Recherche requise avant le grattage

Si vous ciblez un site Web pour en extraire des données, nous devons comprendre son échelle et sa structure. Voici quelques-uns des fichiers que nous devons analyser avant de commencer le scraping Web.

Analyse du fichier robots.txt

En fait, la plupart des éditeurs permettent aux programmeurs d'explorer leurs sites Web dans une certaine mesure. En d'autres termes, les éditeurs souhaitent que des parties spécifiques des sites Web soient explorées. Pour définir cela, les sites Web doivent mettre des règles pour indiquer quelles parties peuvent être explorées et lesquelles ne peuvent pas l'être. Ces règles sont définies dans un fichier appelérobots.txt.

robots.txtest un fichier lisible par l'homme utilisé pour identifier les parties du site Web que les robots d'exploration sont autorisés ou non à extraire. Il n'y a pas de format standard de fichier robots.txt et les éditeurs de site Web peuvent faire des modifications selon leurs besoins. Nous pouvons vérifier le fichier robots.txt pour un site Web particulier en fournissant une barre oblique et robots.txt après l'URL de ce site Web. Par exemple, si nous voulons le vérifier pour Google.com, nous devons taperhttps://www.google.com/robots.txt et nous obtiendrons quelque chose comme suit -

User-agent: *
Disallow: /search
Allow: /search/about
Allow: /search/static
Allow: /search/howsearchworks
Disallow: /sdch
Disallow: /groups
Disallow: /index.html?
Disallow: /?
Allow: /?hl=
Disallow: /?hl=*&
Allow: /?hl=*&gws_rd=ssl$
and so on……..

Certaines des règles les plus courantes définies dans le fichier robots.txt d'un site Web sont les suivantes:

User-agent: BadCrawler
Disallow: /

La règle ci-dessus signifie que le fichier robots.txt demande à un robot d'exploration avec BadCrawler l'agent utilisateur de ne pas explorer son site Web.

User-agent: *
Crawl-delay: 5
Disallow: /trap

La règle ci-dessus signifie que le fichier robots.txt retarde un robot d'exploration de 5 secondes entre les demandes de téléchargement de tous les agents utilisateurs pour éviter de surcharger le serveur. le/traplink essaiera de bloquer les robots malveillants qui suivent des liens non autorisés. Il existe de nombreuses autres règles qui peuvent être définies par l'éditeur du site Web selon leurs besoins. Certains d'entre eux sont discutés ici -

Analyse des fichiers Sitemap

Que devez-vous faire si vous souhaitez explorer un site Web pour obtenir des informations à jour? Vous explorerez chaque page Web pour obtenir ces informations mises à jour, mais cela augmentera le trafic du serveur de ce site Web particulier. C'est pourquoi les sites Web fournissent des fichiers de plan du site pour aider les robots d'exploration à localiser le contenu mis à jour sans avoir à explorer chaque page Web. La norme Sitemap est définie àhttp://www.sitemaps.org/protocol.html.

Contenu du fichier Sitemap

Ce qui suit est le contenu du fichier plan du site de https://www.microsoft.com/robots.txt qui est découvert dans le fichier robot.txt -

Sitemap: https://www.microsoft.com/en-us/explore/msft_sitemap_index.xml
Sitemap: https://www.microsoft.com/learning/sitemap.xml
Sitemap: https://www.microsoft.com/en-us/licensing/sitemap.xml
Sitemap: https://www.microsoft.com/en-us/legal/sitemap.xml
Sitemap: https://www.microsoft.com/filedata/sitemaps/RW5xN8
Sitemap: https://www.microsoft.com/store/collections.xml
Sitemap: https://www.microsoft.com/store/productdetailpages.index.xml
Sitemap: https://www.microsoft.com/en-us/store/locations/store-locationssitemap.xml

Le contenu ci-dessus montre que le plan du site répertorie les URL sur le site Web et permet en outre à un webmaster de spécifier des informations supplémentaires telles que la date de la dernière mise à jour, le changement de contenu, l'importance de l'URL par rapport aux autres, etc. sur chaque URL.

Quelle est la taille du site Web?

La taille d'un site Web, c'est-à-dire le nombre de pages Web d'un site Web affecte-t-elle la façon dont nous explorons? Oui, certainement. Parce que si nous avons moins de pages Web à explorer, l'efficacité ne serait pas un problème sérieux, mais supposons que si notre site Web comporte des millions de pages Web, par exemple Microsoft.com, le téléchargement de chaque page Web de manière séquentielle prendrait plusieurs mois et alors l'efficacité serait un problème sérieux.

Vérification de la taille du site Web

En vérifiant la taille du résultat du robot d'exploration de Google, nous pouvons avoir une estimation de la taille d'un site Web. Notre résultat peut être filtré en utilisant le mot-clésitetout en effectuant la recherche Google. Par exemple, estimer la taille dehttps://authoraditiagarwal.com/ est donné ci-dessous -

Vous pouvez voir qu'il y a environ 60 résultats, ce qui signifie que ce n'est pas un gros site Web et que l'exploration ne poserait pas de problème d'efficacité.

Quelle technologie est utilisée par le site Web?

Une autre question importante est de savoir si la technologie utilisée par le site Web affecte la façon dont nous explorons? Oui, cela affecte. Mais comment vérifier la technologie utilisée par un site Web? Il existe une bibliothèque Python nomméebuiltwith avec l'aide de laquelle nous pouvons découvrir la technologie utilisée par un site Web.

Exemple

Dans cet exemple, nous allons vérifier la technologie utilisée par le site Web https://authoraditiagarwal.com avec l'aide de la bibliothèque Python builtwith. Mais avant d'utiliser cette bibliothèque, nous devons l'installer comme suit -

(base) D:\ProgramData>pip install builtwith
Collecting builtwith
   Downloading
https://files.pythonhosted.org/packages/9b/b8/4a320be83bb3c9c1b3ac3f9469a5d66e0
2918e20d226aa97a3e86bddd130/builtwith-1.3.3.tar.gz
Requirement already satisfied: six in d:\programdata\lib\site-packages (from
builtwith) (1.10.0)
Building wheels for collected packages: builtwith
   Running setup.py bdist_wheel for builtwith ... done
   Stored in directory:
C:\Users\gaurav\AppData\Local\pip\Cache\wheels\2b\00\c2\a96241e7fe520e75093898b
f926764a924873e0304f10b2524
Successfully built builtwith
Installing collected packages: builtwith
Successfully installed builtwith-1.3.3

Maintenant, en suivant une simple ligne de codes, nous pouvons vérifier la technologie utilisée par un site Web particulier -

In [1]: import builtwith
In [2]: builtwith.parse('http://authoraditiagarwal.com')
Out[2]:
{'blogs': ['PHP', 'WordPress'],
   'cms': ['WordPress'],
   'ecommerce': ['WooCommerce'],
   'font-scripts': ['Font Awesome'],
   'javascript-frameworks': ['jQuery'],
   'programming-languages': ['PHP'],
   'web-servers': ['Apache']}

Qui est le propriétaire du site Web?

Le propriétaire du site Web est également important, car si le propriétaire est connu pour avoir bloqué les robots d'exploration, les robots d'exploration doivent faire attention lorsqu'ils récupèrent les données du site Web. Il existe un protocole nomméWhois avec l'aide duquel nous pouvons nous renseigner sur le propriétaire du site Web.

Exemple

Dans cet exemple, nous allons vérifier le propriétaire du site Web, disons microsoft.com à l'aide de Whois. Mais avant d'utiliser cette bibliothèque, nous devons l'installer comme suit -

(base) D:\ProgramData>pip install python-whois
Collecting python-whois
   Downloading
https://files.pythonhosted.org/packages/63/8a/8ed58b8b28b6200ce1cdfe4e4f3bbc8b8
5a79eef2aa615ec2fef511b3d68/python-whois-0.7.0.tar.gz (82kB)
   100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 92kB 164kB/s
Requirement already satisfied: future in d:\programdata\lib\site-packages (from
python-whois) (0.16.0)
Building wheels for collected packages: python-whois
   Running setup.py bdist_wheel for python-whois ... done
   Stored in directory:
C:\Users\gaurav\AppData\Local\pip\Cache\wheels\06\cb\7d\33704632b0e1bb64460dc2b
4dcc81ab212a3d5e52ab32dc531
Successfully built python-whois
Installing collected packages: python-whois
Successfully installed python-whois-0.7.0

Maintenant, en suivant une simple ligne de codes, nous pouvons vérifier la technologie utilisée par un site Web particulier -

In [1]: import whois
In [2]: print (whois.whois('microsoft.com'))
{
   "domain_name": [
      "MICROSOFT.COM",
      "microsoft.com"
   ],
   -------
   "name_servers": [
      "NS1.MSFT.NET",
      "NS2.MSFT.NET",
      "NS3.MSFT.NET",
      "NS4.MSFT.NET",
      "ns3.msft.net",
      "ns1.msft.net",
      "ns4.msft.net",
      "ns2.msft.net"
   ],
   "emails": [
      "[email protected]",
      "[email protected]",
      "[email protected]",
      "[email protected]"
   ],
}