Legalitas Scraping Web
Dengan Python, kita dapat mengikis situs web apa pun atau elemen tertentu dari halaman web tetapi apakah Anda tahu apakah itu legal atau tidak? Sebelum melakukan scraping situs web apa pun kita harus mengetahui tentang legalitas web scraping. Bab ini akan menjelaskan konsep-konsep yang terkait dengan legalitas web scraping.
pengantar
Umumnya, jika Anda akan menggunakan data bekas untuk penggunaan pribadi, mungkin tidak ada masalah. Tetapi jika Anda akan memublikasikan ulang data itu, sebelum melakukan hal yang sama Anda harus membuat permintaan unduhan kepada pemilik atau melakukan penelitian latar belakang tentang kebijakan serta tentang data yang akan Anda hapus.
Diperlukan Penelitian Sebelum Mengikis
Jika Anda menargetkan situs web untuk mengambil data darinya, kami perlu memahami skala dan strukturnya. Berikut adalah beberapa file yang perlu kami analisis sebelum memulai web scraping.
Menganalisis robots.txt
Sebenarnya sebagian besar penerbit mengizinkan pemrogram untuk merayapi situs web mereka pada tingkat tertentu. Dengan kata lain, penerbit ingin bagian tertentu dari situs web dirayapi. Untuk menentukan ini, situs web harus membuat beberapa aturan untuk menyatakan bagian mana yang dapat di-crawl dan mana yang tidak. Aturan semacam itu didefinisikan dalam file bernamarobots.txt.
robots.txtadalah file yang dapat dibaca manusia yang digunakan untuk mengidentifikasi bagian situs web yang diizinkan dan tidak boleh dikikis oleh crawler. Tidak ada format standar file robots.txt dan penerbit situs web dapat melakukan modifikasi sesuai kebutuhan mereka. Kami dapat memeriksa file robots.txt untuk situs web tertentu dengan memberikan garis miring dan robots.txt setelah url situs web tersebut. Misalnya, jika kita ingin memeriksanya untuk Google.com, maka kita perlu mengetikhttps://www.google.com/robots.txt dan kami akan mendapatkan sesuatu sebagai berikut -
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……..
Beberapa aturan paling umum yang ditentukan dalam file robots.txt situs web adalah sebagai berikut -
User-agent: BadCrawler
Disallow: /
Aturan di atas berarti file robots.txt meminta crawler dengan BadCrawler agen pengguna untuk tidak merayapi situs web mereka.
User-agent: *
Crawl-delay: 5
Disallow: /trap
Aturan di atas berarti file robots.txt menunda crawler selama 5 detik antara permintaan download untuk semua agen pengguna untuk menghindari server kelebihan beban. Itu/traplink akan mencoba memblokir crawler berbahaya yang mengikuti link yang tidak diizinkan. Ada lebih banyak aturan yang dapat ditentukan oleh penerbit situs web sesuai kebutuhan mereka. Beberapa dari mereka dibahas di sini -
Menganalisis file Peta Situs
Apa yang harus Anda lakukan jika ingin merayapi situs web untuk informasi terbaru? Anda akan merayapi setiap halaman web untuk mendapatkan informasi yang diperbarui itu, tetapi ini akan meningkatkan lalu lintas server dari situs web tersebut. Itulah sebabnya situs web menyediakan file peta situs untuk membantu perayap menemukan konten yang diperbarui tanpa perlu merayapi setiap laman web. Standar peta situs ditentukan dihttp://www.sitemaps.org/protocol.html.
Isi file Peta Situs
Berikut ini adalah konten file peta situs https://www.microsoft.com/robots.txt yang ditemukan di file 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
Konten di atas menunjukkan bahwa peta situs mencantumkan URL di situs web dan selanjutnya memungkinkan webmaster untuk menentukan beberapa informasi tambahan seperti tanggal terakhir diperbarui, perubahan konten, pentingnya URL dengan hubungannya dengan yang lain, dll. Tentang setiap URL.
Berapa Ukuran Situs Web?
Apakah ukuran sebuah situs web, yaitu jumlah halaman web dari sebuah situs web memengaruhi cara kita menjelajah? Tentu iya. Karena jika kita memiliki lebih sedikit jumlah halaman web untuk di-crawl, maka efisiensi tidak akan menjadi masalah yang serius, tetapi misalkan jika situs web kita memiliki jutaan halaman web, misalnya Microsoft.com, maka mengunduh setiap halaman web secara berurutan akan memakan waktu beberapa bulan dan maka efisiensi akan menjadi perhatian serius.
Memeriksa Ukuran Situs Web
Dengan memeriksa ukuran hasil crawler Google, kita dapat memperkirakan ukuran sebuah situs web. Hasil kami dapat disaring dengan menggunakan kata kuncisitesaat melakukan pencarian Google. Misalnya, memperkirakan ukuranhttps://authoraditiagarwal.com/ diberikan di bawah -
Anda dapat melihat ada sekitar 60 hasil yang berarti ini bukan situs web besar dan perayapan tidak akan menimbulkan masalah efisiensi.
Teknologi apa yang digunakan oleh situs web?
Pertanyaan penting lainnya adalah apakah teknologi yang digunakan oleh situs web memengaruhi cara kami merayapi? Ya, itu mempengaruhi. Tetapi bagaimana kita dapat memeriksa tentang teknologi yang digunakan oleh sebuah situs web? Ada pustaka Python bernamabuiltwith dengan bantuan yang kami dapat mengetahui tentang teknologi yang digunakan oleh sebuah situs web.
Contoh
Dalam contoh ini kita akan memeriksa teknologi yang digunakan oleh situs web https://authoraditiagarwal.com dengan bantuan pustaka Python builtwith. Tetapi sebelum menggunakan pustaka ini, kita perlu menginstalnya sebagai berikut -
(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
Sekarang, dengan bantuan mengikuti baris kode sederhana, kami dapat memeriksa teknologi yang digunakan oleh situs web tertentu -
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']}
Siapa pemilik situs web?
Pemilik situs web juga penting karena jika pemiliknya diketahui memblokir perayap, maka perayap harus berhati-hati saat mengambil data dari situs web. Ada protokol bernamaWhois dengan bantuan yang kami dapat mengetahui tentang pemilik situs web.
Contoh
Dalam contoh ini kita akan memeriksa pemilik situs web mengatakan microsoft.com dengan bantuan Whois. Tetapi sebelum menggunakan pustaka ini, kita perlu menginstalnya sebagai berikut -
(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
Sekarang, dengan bantuan mengikuti baris kode sederhana, kami dapat memeriksa teknologi yang digunakan oleh situs web tertentu -
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]"
],
}