Legalität des Web Scraping

Mit Python können wir jede Website oder bestimmte Elemente einer Webseite kratzen. Haben Sie jedoch eine Vorstellung davon, ob diese legal ist oder nicht? Vor dem Scraping einer Website müssen wir die Rechtmäßigkeit des Web-Scrapings kennen. In diesem Kapitel werden die Konzepte zur Legalität des Web Scraping erläutert.

Einführung

Wenn Sie die kratzenden Daten für den persönlichen Gebrauch verwenden, liegt im Allgemeinen möglicherweise kein Problem vor. Wenn Sie diese Daten jedoch erneut veröffentlichen möchten, sollten Sie vor dem Ausführen des Vorgangs eine Download-Anfrage an den Eigentümer richten oder Hintergrundinformationen zu Richtlinien sowie zu den Daten, die Sie kratzen möchten, durchführen.

Vor dem Schaben erforderliche Forschung

Wenn Sie auf eine Website abzielen, um Daten daraus zu entfernen, müssen wir deren Umfang und Struktur verstehen. Im Folgenden finden Sie einige der Dateien, die wir analysieren müssen, bevor Sie mit dem Web-Scraping beginnen.

Analyse von robots.txt

Tatsächlich erlauben die meisten Publisher Programmierern, ihre Websites in gewissem Umfang zu crawlen. In einem anderen Sinne möchten Publisher, dass bestimmte Teile der Websites gecrawlt werden. Um dies zu definieren, müssen Websites einige Regeln festlegen, um anzugeben, welche Teile gecrawlt werden können und welche nicht. Solche Regeln werden in einer aufgerufenen Datei definiertrobots.txt.

robots.txtist eine lesbare Datei, die verwendet wird, um die Teile der Website zu identifizieren, die Crawler dürfen und nicht kratzen dürfen. Es gibt kein Standardformat für die robots.txt-Datei, und die Herausgeber der Website können Änderungen gemäß ihren Anforderungen vornehmen. Wir können die robots.txt-Datei für eine bestimmte Website überprüfen, indem wir einen Schrägstrich und robots.txt nach der URL dieser Website angeben. Wenn wir beispielsweise nach Google.com suchen möchten, müssen wir Folgendes eingebenhttps://www.google.com/robots.txt und wir werden etwas wie folgt bekommen -

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……..

Einige der häufigsten Regeln, die in der robots.txt-Datei einer Website definiert sind, lauten wie folgt:

User-agent: BadCrawler
Disallow: /

Die obige Regel bedeutet, dass die robots.txt-Datei einen Crawler mit fragt BadCrawler Benutzeragent, um ihre Website nicht zu crawlen.

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

Die obige Regel bedeutet, dass die robots.txt-Datei einen Crawler zwischen den Download-Anforderungen für alle Benutzeragenten um 5 Sekunden verzögert, um eine Überlastung des Servers zu vermeiden. Das/traplink versucht, böswillige Crawler zu blockieren, die nicht zugelassenen Links folgen. Es gibt viele weitere Regeln, die vom Herausgeber der Website gemäß seinen Anforderungen definiert werden können. Einige von ihnen werden hier diskutiert -

Sitemap-Dateien analysieren

Was sollten Sie tun, wenn Sie eine Website nach aktualisierten Informationen durchsuchen möchten? Sie werden jede Webseite crawlen, um diese aktualisierten Informationen zu erhalten. Dies erhöht jedoch den Serververkehr dieser bestimmten Website. Aus diesem Grund bieten Websites Sitemap-Dateien, mit denen die Crawler aktualisierte Inhalte leichter finden können, ohne jede Webseite crawlen zu müssen. Der Sitemap-Standard ist definiert unterhttp://www.sitemaps.org/protocol.html.

Inhalt der Sitemap-Datei

Das Folgende ist der Inhalt der Sitemap-Datei von https://www.microsoft.com/robots.txt das wird in der Datei robot.txt entdeckt -

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

Der obige Inhalt zeigt, dass die Sitemap die URLs auf der Website auflistet und es einem Webmaster ermöglicht, einige zusätzliche Informationen wie das Datum der letzten Aktualisierung, die Änderung des Inhalts, die Bedeutung der URL in Bezug auf andere usw. zu jeder URL anzugeben.

Wie groß ist die Website?

Beeinflusst die Größe einer Website, dh die Anzahl der Webseiten einer Website, die Art und Weise, wie wir crawlen? Sicherlich ja. Denn wenn wir weniger Webseiten crawlen müssen, ist die Effizienz kein ernstes Problem. Wenn unsere Website jedoch Millionen von Webseiten enthält, z. B. Microsoft.com, dauert das Herunterladen jeder Webseite nacheinander mehrere Monate und dann wäre Effizienz ein ernstes Problem.

Überprüfen der Größe der Website

Durch Überprüfen der Ergebnisgröße des Google-Crawlers können wir eine Schätzung der Größe einer Website erhalten. Unser Ergebnis kann mithilfe des Schlüsselworts gefiltert werdensitewährend der Google-Suche. Zum Beispiel das Schätzen der Größe vonhttps://authoraditiagarwal.com/ ist unten angegeben -

Sie können sehen, dass es ungefähr 60 Ergebnisse gibt, was bedeutet, dass es sich nicht um eine große Website handelt und das Crawlen nicht zu Effizienzproblemen führen würde.

Welche Technologie wird von der Website verwendet?

Eine weitere wichtige Frage ist, ob die von der Website verwendete Technologie die Art und Weise beeinflusst, wie wir crawlen. Ja, es betrifft. Aber wie können wir die von einer Website verwendete Technologie überprüfen? Es gibt eine Python-Bibliothek mit dem Namenbuiltwith mit deren Hilfe wir uns über die von einer Website verwendete Technologie informieren können.

Beispiel

In diesem Beispiel werden wir die von der Website verwendete Technologie überprüfen https://authoraditiagarwal.com mit Hilfe der Python-Bibliothek builtwith. Bevor wir diese Bibliothek verwenden können, müssen wir sie wie folgt installieren:

(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

Mithilfe der folgenden einfachen Codezeile können wir nun die von einer bestimmten Website verwendete Technologie überprüfen.

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']}

Wer ist der Eigentümer der Website?

Der Eigentümer der Website ist auch wichtig, denn wenn der Eigentümer dafür bekannt ist, die Crawler zu blockieren, müssen die Crawler beim Scraping der Daten von der Website vorsichtig sein. Es gibt ein Protokoll mit dem NamenWhois mit deren Hilfe wir uns über den Inhaber der Website informieren können.

Beispiel

In diesem Beispiel überprüfen wir den Eigentümer der Website, beispielsweise microsoft.com, mithilfe von Whois. Bevor wir diese Bibliothek verwenden können, müssen wir sie wie folgt installieren:

(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

Mithilfe der folgenden einfachen Codezeile können wir nun die von einer bestimmten Website verwendete Technologie überprüfen.

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]"
   ],
}