Güzel Çorba - Kurulum

BeautifulSoup standart bir python kitaplığı olmadığı için önce onu kurmamız gerekiyor. En sonuncusu olan BeautifulSoup 4 kütüphanesini (BS4 olarak da bilinir) kuracağız.

Mevcut kurulumu bozmayacak şekilde çalışma ortamımızı izole etmek için önce sanal bir ortam oluşturalım.

Sanal ortam oluşturma (isteğe bağlı)

Bir sanal ortam, dış kurulumu etkilemeden belirli bir proje için izole edilmiş bir çalışma python kopyası oluşturmamızı sağlar.

Herhangi bir python paket makinesini kurmanın en iyi yolu pip kullanmaktır, ancak pip zaten kurulu değilse (komutunuzda veya kabuk isteminizde - "pip –version" kullanarak kontrol edebilirsiniz), aşağıdaki komutu vererek kurabilirsiniz -

Linux ortamı

$sudo apt-get install python-pip

Windows ortamı

Windows'ta pip kurmak için aşağıdakileri yapın -

  • Get-pip.py dosyasını şu adresten indirin: https://bootstrap.pypa.io/get-pip.py veya github'dan bilgisayarınıza.

  • Komut istemini açın ve get-pip.py dosyasını içeren klasöre gidin.

  • Aşağıdaki komutu çalıştırın -

>python get-pip.py

İşte bu, pip artık Windows makinenize yüklenmiştir.

Aşağıdaki komutu çalıştırarak pip'inizin kurulu olduğunu doğrulayabilirsiniz -

>pip --version
pip 19.2.3 from c:\users\yadur\appdata\local\programs\python\python37\lib\site-packages\pip (python 3.7)

Sanal ortamı kurma

Komut isteminizde aşağıdaki komutu çalıştırın -

>pip install virtualenv

Çalıştırdıktan sonra aşağıdaki ekran görüntüsünü göreceksiniz -

Aşağıdaki komut, mevcut dizininizde bir sanal ortam ("myEnv") oluşturacaktır -

>virtualenv myEnv

Ekran görüntüsü

Sanal ortamınızı etkinleştirmek için aşağıdaki komutu çalıştırın -

>myEnv\Scripts\activate

Yukarıdaki ekran görüntüsünde, "myEnv" sanal ortamı altında olduğumuzu söyleyen önek olarak "myEnv" olduğunu görebilirsiniz.

Sanal ortamdan çıkmak için devre dışı bırak'ı çalıştırın.

(myEnv) C:\Users\yadur>deactivate
C:\Users\yadur>

Sanal ortamımız hazır olduğu için şimdi beautifulsoup kuralım.

BeautifulSoup Kurulumu

BeautifulSoup standart bir kütüphane olmadığı için onu kurmamız gerekiyor. BeautifulSoup 4 paketini (bs4 olarak bilinir) kullanacağız.

Linux Makinesi

Sistem paket yöneticisini kullanarak bs4'ü Debian veya Ubuntu linux üzerine kurmak için aşağıdaki komutu çalıştırın -

$sudo apt-get install python-bs4 (for python 2.x)
$sudo apt-get install python3-bs4 (for python 3.x)

Bs4'ü easy_install veya pip kullanarak kurabilirsiniz (sistem paketleyiciyi kullanarak yüklemede sorun bulursanız).

$easy_install beautifulsoup4
$pip install beautifulsoup4

(Python3 kullanıyorsanız, sırasıyla easy_install3 veya pip3 kullanmanız gerekebilir)

Windows Makinesi

Beautifulsoup4'ü pencerelere kurmak çok basittir, özellikle zaten pip yüklediyseniz.

>pip install beautifulsoup4

Yani şimdi güzelsoup4 makinemize kuruldu. Kurulumdan sonra karşılaşılan bazı problemlerden bahsedelim.

Kurulumdan sonra sorunlar

Windows makinesinde karşılaşabilirsiniz, yanlış sürüm kurulurken esas olarak hata -

  • hata: ImportError “No module named HTMLParser”, sonra Python 3 altında kodun python 2 sürümünü çalıştırıyor olmalısınız.

  • hata: ImportError “No module named html.parser” hatası varsa, Python 2 altında kodun Python 3 sürümünü çalıştırıyor olmalısınız.

Yukarıdaki iki durumdan kurtulmanın en iyi yolu BeautifulSoup'u yeniden kurmak ve mevcut kurulumu tamamen kaldırmaktır.

Eğer alırsan SyntaxError “Invalid syntax” ROOT_TAG_NAME = u '[belge]' satırındaysa, python 2 kodunu python 3'e, yalnızca paketi kurarak dönüştürmeniz gerekir -

$ python3 setup.py install

veya python'un 2 ila 3 dönüştürme komut dosyasını bs4 dizininde manuel olarak çalıştırarak -

$ 2to3-3.2 -w bs4

Bir Ayrıştırıcı Yükleme

Varsayılan olarak, Beautiful Soup Python'un standart kitaplığında bulunan HTML ayrıştırıcısını destekler, ancak lxml ayrıştırıcı veya html5lib ayrıştırıcı gibi birçok harici üçüncü taraf python ayrıştırıcısını da destekler.

Lxml veya html5lib ayrıştırıcısını kurmak için şu komutu kullanın -

Linux Makinesi

$apt-get install python-lxml
$apt-get insall python-html5lib

Windows Makinesi

$pip install lxml
$pip install html5lib

Genellikle, kullanıcılar hız için lxml kullanır ve python'un yerleşik HTML ayrıştırıcısı olarak python 2'nin (2.7.3 sürümünden önce) veya python 3'ün (3.2.2'den önce) eski sürümünü kullanıyorsanız, lxml veya html5lib ayrıştırıcısı kullanmanız önerilir. eski sürümün kullanımında pek iyi değil.

Güzel Çorba Çalıştırmak

Güzel Çorba paketimizi html sayfalarından birinde test etme zamanı (web sayfasını alarak - https://www.tutorialspoint.com/index.htm, istediğiniz herhangi bir web sayfasını seçebilir ve ondan bazı bilgiler alabilirsiniz.

Aşağıdaki kodda, başlığı web sayfasından çıkarmaya çalışıyoruz -

from bs4 import BeautifulSoup
import requests
url = "https://www.tutorialspoint.com/index.htm"
req = requests.get(url)
soup = BeautifulSoup(req.text, "html.parser")
print(soup.title)

Çıktı

<title>H2O, Colab, Theano, Flutter, KNime, Mean.js, Weka, Solidity, Org.Json, AWS QuickSight, JSON.Simple, Jackson Annotations, Passay, Boon, MuleSoft, Nagios, Matplotlib, Java NIO, PyTorch, SLF4J, Parallax Scrolling, Java Cryptography</title>

Yaygın bir görev, bir web sayfasındaki tüm URL'leri çıkarmaktır. Bunun için aşağıdaki kod satırını eklememiz yeterlidir -

for link in soup.find_all('a'):
print(link.get('href'))

Çıktı

https://www.tutorialspoint.com/index.htm
https://www.tutorialspoint.com/about/about_careers.htm
https://www.tutorialspoint.com/questions/index.php
https://www.tutorialspoint.com/online_dev_tools.htm
https://www.tutorialspoint.com/codingground.htm
https://www.tutorialspoint.com/current_affairs.htm
https://www.tutorialspoint.com/upsc_ias_exams.htm
https://www.tutorialspoint.com/tutor_connect/index.php
https://www.tutorialspoint.com/whiteboard.htm
https://www.tutorialspoint.com/netmeeting.php
https://www.tutorialspoint.com/index.htm
https://www.tutorialspoint.com/tutorialslibrary.htm
https://www.tutorialspoint.com/videotutorials/index.php
https://store.tutorialspoint.com
https://www.tutorialspoint.com/gate_exams_tutorials.htm
https://www.tutorialspoint.com/html_online_training/index.asp
https://www.tutorialspoint.com/css_online_training/index.asp
https://www.tutorialspoint.com/3d_animation_online_training/index.asp
https://www.tutorialspoint.com/swift_4_online_training/index.asp
https://www.tutorialspoint.com/blockchain_online_training/index.asp
https://www.tutorialspoint.com/reactjs_online_training/index.asp
https://www.tutorix.com
https://www.tutorialspoint.com/videotutorials/top-courses.php
https://www.tutorialspoint.com/the_full_stack_web_development/index.asp
….
….
https://www.tutorialspoint.com/online_dev_tools.htm
https://www.tutorialspoint.com/free_web_graphics.htm
https://www.tutorialspoint.com/online_file_conversion.htm
https://www.tutorialspoint.com/netmeeting.php
https://www.tutorialspoint.com/free_online_whiteboard.htm
http://www.tutorialspoint.com
https://www.facebook.com/tutorialspointindia
https://plus.google.com/u/0/+tutorialspoint
http://www.twitter.com/tutorialspoint
http://www.linkedin.com/company/tutorialspoint
https://www.youtube.com/channel/UCVLbzhxVTiTLiVKeGV7WEBg
https://www.tutorialspoint.com/index.htm
/about/about_privacy.htm#cookies
/about/faq.htm
/about/about_helping.htm
/about/contact_us.htm

Benzer şekilde, beautifulsoup4 kullanarak faydalı bilgiler elde edebiliriz.

Şimdi yukarıdaki örnekte "çorba" yı daha iyi anlayalım.