Örneğin, indirim teklifleri için favori ürünleriniz hakkında düzenli güncellemeler almak istiyorsanız veya favori sezonun bölümlerini tek tek indirme işlemini otomatikleştirmek istiyorsanız ve web sitesinde bunun için herhangi bir API yoksa, o zaman tek seçenek geriye kalan web kazıma.Web kazıma, bir web sitesinin izin verip vermemesine bağlı olarak bazı web sitelerinde yasa dışı olabilir. Web siteleri “robotlar” kullanır.Hurdaya çıkarılmasına izin verilmeyen URL'leri açıkça tanımlamak için robots.txt" dosyası. Web sitesinin izin verip vermediğini robotlar ekleyerek kontrol edebilirsiniz.txt” ile web sitesinin alan adı. Örneğin, https://www.Google.com/robotlar.Txt
Bu yazıda, kurulumu ve kullanımı çok kolay olduğu için kazıma için Python kullanacağız. Verileri kazımak ve düzenlemek için kullanılabilecek birçok yerleşik ve üçüncü taraf kitaplığına sahiptir. Web sayfasını getirmek için “urllib” ve programlama işlemlerini uygulamak için web sayfasını ayrıştırmak için “BeautifulSoup” adlı iki Python kitaplığı kullanacağız.
Web Kazıma nasıl çalışır??
Verileri sıyırmak istediğiniz web sayfasına bir istek gönderiyoruz. Web sitesi, talebe sayfanın HTML içeriği ile yanıt verecektir. Ardından, daha fazla işlem için bu web sayfasını BeautifulSoup'a ayrıştırabiliriz. Web sayfasını getirmek için Python'da “urllib” kütüphanesini kullanacağız.
Urllib, web sayfası içeriğini HTML olarak indirecek. İçerik çıkarma ve daha fazla işleme için bu HTML web sayfasına dize işlemleri uygulayamıyoruz. İçeriği ayrıştıracak ve ilginç verileri çıkaracak bir Python kütüphanesi “BeautifulSoup” kullanacağız.
Linuxhint'ten makaleleri kazıma.com
Artık web kazımanın nasıl çalıştığına dair bir fikrimiz olduğuna göre, biraz pratik yapalım. Makale başlıklarını ve linkleri Linuxhint'ten sıyırmaya çalışacağız.com. Bu yüzden https://linuxhint'i açın.com/ tarayıcınızda.
Şimdi web sayfasının HTML kaynak kodunu görüntülemek için CRTL+U tuşlarına basın.
Kaynak kodunu kopyalayın ve https://htmlformatter adresine gidin.com/ kodu güzelleştirmek için. Kodu güzelleştirdikten sonra, kodu incelemek ve ilginç bilgiler bulmak kolaydır.
Şimdi, biçimlendirilmiş kodu tekrar kopyalayın ve atom, yüce metin vb. gibi favori metin düzenleyicinize yapıştırın. Şimdi Python kullanarak ilginç bilgileri kazıyacağız. Aşağıdakileri yazın
// Güzel bir çorba kütüphanesi kurun, urllib geliyorPython'da önceden yüklenmiş
ubuntu@ubuntu:~$ sudo pip3 bs4'ü kurun
ubuntu@ubuntu:~$ python3
piton 3.7.3 (varsayılan, 7 Ekim 2019, 12:56:13)
[GCC 8.3.0] linux üzerinde
Daha fazla bilgi için "yardım", "telif hakkı", "kredi" veya "lisans" yazın.
//urllib'i içe aktar>>> urllib'i içe aktar.istek
// BeautifulSoup'u içe aktar
>>> bs4'ten BeautifulSoup'u içe aktarın
// Getirmek istediğiniz URL'yi girin
>>> my_url = 'https://linuxhint.iletişim /'
//urlopen komutunu kullanarak URL web sayfasını isteyin
>>> müşteri = urllib.istek.urlopen(my_url)
//HTML web sayfasını “html_page” değişkeninde saklayın
>>> html_page = müşteri.oku()
//Web sayfasını getirdikten sonra URL bağlantısını kapatın
>>> müşteri.kapat()
// HTML web sayfasını kazıma için BeautifulSoup'a ayrıştırın
>>> page_soup = BeautifulSoup(html_page, "html.ayrıştırıcı")
Şimdi ilgimizi çeken şeyleri bulmak için az önce kopyalayıp yapıştırdığımız HTML kaynak koduna bakalım.
Linuxhint'te listelenen ilk makalenin.com, “74 Bash Operators Samples” olarak adlandırılmıştır, bunu kaynak kodunda bulun. Başlık etiketleri arasına alınır ve kodu
title="74 Bash Operatör Örnekleri">74 Bash Operatörleri
Örnekler
Aynı kod, sadece makale başlıklarının ve bağlantılarının değiştirilmesiyle tekrar tekrar tekrarlanır. Sonraki makale aşağıdaki HTML koduna sahiptir
title="Ubuntu 18'de Vernik önbelleği nasıl kurulur.04">
Ubuntu 18'de Vernik önbelleği nasıl kurulur.04
Bu ikisi de dahil olmak üzere tüm makalelerin aynı “
” etiketi ve aynı “giriş-başlığı” sınıfını kullanın. Güzel Çorba kitaplığındaki “findAll” fonksiyonunu kullanarak tüm “bütün”leri bulup listeleyebiliriz"giriş başlığı" sınıfına sahip. Python konsolunuza aşağıdakini yazın // Bu komut tüm “” adlı sınıfa sahip etiket öğeleri
“giriş başlığı”. Çıktı bir dizide saklanacak.
>>> makaleler = page_soup.hepsini bul ("h2" ,
"sınıf": "giriş başlığı")
// Linuxhint'in ön sayfasında bulunan makale sayısı.com
>>> len(makaleler)
102
// İlk çıkarılan “” makale adını ve bağlantısını içeren etiket öğesi
>>> makaleler[0]
title="74 Bash Operatör Örnekleri">
74 Bash Operatör Örnekleri
// İkinci çıkarılan “” makale adını ve bağlantısını içeren etiket öğesi
>>> makaleler[1]
title="Ubuntu 18'de Vernik önbelleği nasıl kurulur.04">
Ubuntu 18'de Vernik önbelleği nasıl kurulur.04
// Metin işlevini kullanarak yalnızca HTML etiketlerindeki metni görüntüleme
>>> makaleler[1].Metin
'Ubuntu 18'de Vernik önbelleği nasıl kurulur.04'
” adlı sınıfa sahip etiket öğeleri
“giriş başlığı”. Çıktı bir dizide saklanacak.
>>> makaleler = page_soup.hepsini bul ("h2" ,
"sınıf": "giriş başlığı")
// Linuxhint'in ön sayfasında bulunan makale sayısı.com
>>> len(makaleler)
102
// İlk çıkarılan “” makale adını ve bağlantısını içeren etiket öğesi
>>> makaleler[0]
title="74 Bash Operatör Örnekleri">
74 Bash Operatör Örnekleri
// İkinci çıkarılan “” makale adını ve bağlantısını içeren etiket öğesi
>>> makaleler[1]
title="Ubuntu 18'de Vernik önbelleği nasıl kurulur.04">
Ubuntu 18'de Vernik önbelleği nasıl kurulur.04
// Metin işlevini kullanarak yalnızca HTML etiketlerindeki metni görüntüleme
>>> makaleler[1].Metin
'Ubuntu 18'de Vernik önbelleği nasıl kurulur.04'
>>> makaleler[0]
title="74 Bash Operatör Örnekleri">
74 Bash Operatör Örnekleri
// İkinci çıkarılan “
” makale adını ve bağlantısını içeren etiket öğesi
>>> makaleler[1]
title="Ubuntu 18'de Vernik önbelleği nasıl kurulur.04">
Ubuntu 18'de Vernik önbelleği nasıl kurulur.04
// Metin işlevini kullanarak yalnızca HTML etiketlerindeki metni görüntüleme
>>> makaleler[1].Metin
'Ubuntu 18'de Vernik önbelleği nasıl kurulur.04'
title="Ubuntu 18'de Vernik önbelleği nasıl kurulur.04">
Ubuntu 18'de Vernik önbelleği nasıl kurulur.04
Artık 102 HTML'nin tamamının bir listesine sahip olduğumuza göre "
” makale bağlantısı ve makale başlığı içeren etiket öğeleri. Hem makale bağlantılarını hem de başlıkları ayıklayabiliriz. Bağlantıları çıkarmak için “” etiketleri için aşağıdaki kodu kullanabiliriz // Aşağıdaki kod, bağlantıyı ilk önce çıkaracaktır etiket öğesi
>>> makalelerdeki bağlantı için[0].find_all('a', href=Doğru):
… yazdır(bağlantı['href'])
…
https://linuxhint.com/bash_operator_examples/
Şimdi her “ boyunca yinelenen bir for döngüsü yazabiliriz
"makaleler" listesindeki ” etiket öğesini ve makale bağlantısını ve başlığını çıkarın. >>> i aralığında (0,10):
… yazdır(makaleler[i].Metin)
… makalelerdeki bağlantı için[i].find_all('a', href=Doğru):
… print(link['href']+"\n")
…
74 Bash Operatör Örnekleri
https://linuxhint.com/bash_operator_examples/
Ubuntu 18'de Vernik önbelleği nasıl kurulur.04
https://linuxhint.com/varnish_cache_ubuntu_1804/
PineTime: Linux Dostu Bir Akıllı Saat
https://linuxhint.com/pinetime_linux_smartwatch/
Bütçeyle Satın Alınabilecek En İyi 10 Linux Dizüstü Bilgisayar
https://linuxhint.com/best_cheap_linux_laptops/
Hiç Linux Sürümü Olmayan Linux için HD Remastered Oyunlar…
https://linuxhint.com/hd_remastered_games_linux/
Linux için 60 FPS Ekran Kaydı Uygulamaları
https://linuxhint.com/60_fps_screen_recording_apps_linux/
74 Bash Operatör Örnekleri
https://linuxhint.com/bash_operator_examples/
… kırpmak…
Benzer şekilde, bu sonuçları bir JSON veya CSV dosyasına kaydedersiniz.
Sonuç
Günlük görevleriniz yalnızca dosya yönetimi veya sistem komut yürütmesi değildir. Ayrıca, Python'da web'i kazıyarak dosya indirme otomasyonu veya veri çıkarma gibi web ile ilgili görevleri otomatikleştirebilirsiniz. Bu makale yalnızca basit veri çıkarma ile sınırlıydı, ancak “urllib” ve “BeautifulSoup” kullanarak büyük görev otomasyonu yapabilirsiniz.
>>> makalelerdeki bağlantı için[0].find_all('a', href=Doğru):
… yazdır(bağlantı['href'])
…
https://linuxhint.com/bash_operator_examples/
… yazdır(makaleler[i].Metin)
… makalelerdeki bağlantı için[i].find_all('a', href=Doğru):
… print(link['href']+"\n")
…
74 Bash Operatör Örnekleri
https://linuxhint.com/bash_operator_examples/
Ubuntu 18'de Vernik önbelleği nasıl kurulur.04
https://linuxhint.com/varnish_cache_ubuntu_1804/
PineTime: Linux Dostu Bir Akıllı Saat
https://linuxhint.com/pinetime_linux_smartwatch/
Bütçeyle Satın Alınabilecek En İyi 10 Linux Dizüstü Bilgisayar
https://linuxhint.com/best_cheap_linux_laptops/
Hiç Linux Sürümü Olmayan Linux için HD Remastered Oyunlar…
https://linuxhint.com/hd_remastered_games_linux/
Linux için 60 FPS Ekran Kaydı Uygulamaları
https://linuxhint.com/60_fps_screen_recording_apps_linux/
74 Bash Operatör Örnekleri
https://linuxhint.com/bash_operator_examples/
… kırpmak…